version 1.5, 1996/08/08 20:49:26 |
version 1.6, 1996/08/14 16:23:55 |
|
|
*/ |
*/ |
if (size <= 8 * 1048576) { |
if (size <= 8 * 1048576) { |
if ((p = mmap(NULL, (size_t)size, PROT_READ, |
if ((p = mmap(NULL, (size_t)size, PROT_READ, |
0, from_fd, (off_t)0)) == (char *)-1) |
0, from_fd, (off_t)0)) == (char *)-1) { |
err(EX_OSERR, "%s", from_name); |
serrno = errno; |
|
(void)unlink(to_name); |
|
errx(EX_OSERR, "%s: %s", from_name, strerror(serrno)); |
|
} |
siz = (size_t)size; |
siz = (size_t)size; |
if (write(to_fd, p, siz) != siz) |
if ((nw = write(to_fd, p, siz)) != siz) { |
err(EX_OSERR, "%s", to_name); |
serrno = errno; |
|
(void)unlink(to_name); |
|
errx(EX_OSERR, "%s: %s", |
|
to_name, strerror(nw > 0 ? EIO : serrno)); |
|
} |
(void) munmap(p, (size_t)size); |
(void) munmap(p, (size_t)size); |
} else { |
} else { |
while ((nr = read(from_fd, buf, sizeof(buf))) > 0) |
while ((nr = read(from_fd, buf, sizeof(buf))) > 0) |