version 1.37, 2014/01/14 21:34:30 |
version 1.38, 2014/01/15 00:31:34 |
|
|
readall(int fd, void *buf, size_t len, const char *filename) |
readall(int fd, void *buf, size_t len, const char *filename) |
{ |
{ |
ssize_t x; |
ssize_t x; |
|
|
x = read(fd, buf, len); |
while (len != 0) { |
if (x == -1) { |
x = read(fd, buf, len); |
err(1, "read from %s", filename); |
if (x == -1) |
} else if (x != len) { |
err(1, "read from %s", filename); |
errx(1, "short read from %s", filename); |
else { |
|
len -= x; |
|
buf = (char*)buf + x; |
|
} |
} |
} |
} |
} |
|
|
|
|
writeall(int fd, const void *buf, size_t len, const char *filename) |
writeall(int fd, const void *buf, size_t len, const char *filename) |
{ |
{ |
ssize_t x; |
ssize_t x; |
|
|
x = write(fd, buf, len); |
while (len != 0) { |
if (x == -1) { |
x = write(fd, buf, len); |
err(1, "write to %s", filename); |
if (x == -1) |
} else if (x != len) { |
err(1, "write to %s", filename); |
errx(1, "short write to %s", filename); |
else { |
|
len -= x; |
|
buf = (char*)buf + x; |
|
} |
} |
} |
} |
} |
|
|