summaryrefslogtreecommitdiff
path: root/libbb/xfuncs.c
diff options
context:
space:
mode:
authorDenis Vlasenko2006-10-12 22:44:13 +0000
committerDenis Vlasenko2006-10-12 22:44:13 +0000
commit88ca06769028e442bf873b270c176ca0e9f021f8 (patch)
tree5df56293dd5b0266ae5964ef5dad5e8b2794f121 /libbb/xfuncs.c
parent2d5ca60bfb66e0ba7340ab9b4696b872f00adf7c (diff)
downloadbusybox-88ca06769028e442bf873b270c176ca0e9f021f8.zip
busybox-88ca06769028e442bf873b270c176ca0e9f021f8.tar.gz
xread/write can use full_read/write (smaller code)
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r--libbb/xfuncs.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index d22cd27..efc9194 100644
--- a/libbb/xfuncs.c
+++ b/libbb/xfuncs.c
@@ -113,24 +113,20 @@ int xopen3(const char *pathname, int flags, int mode)
// Die with an error message if we can't read the entire buffer.
void xread(int fd, void *buf, size_t count)
{
- while (count) {
- ssize_t size = safe_read(fd, buf, count);
- if (size < 1)
+ if (count) {
+ ssize_t size = full_read(fd, buf, count);
+ if (size != count)
bb_error_msg_and_die("short read");
- count -= size;
- buf = ((char *) buf) + size;
}
}
// Die with an error message if we can't write the entire buffer.
void xwrite(int fd, void *buf, size_t count)
{
- while (count) {
- ssize_t size = safe_write(fd, buf, count);
- if (size < 1)
+ if (count) {
+ ssize_t size = full_write(fd, buf, count);
+ if (size != count)
bb_error_msg_and_die("short write");
- count -= size;
- buf = ((char *) buf) + size;
}
}