diff options
Diffstat (limited to 'src/util/io.h')
| -rw-r--r-- | src/util/io.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/util/io.h b/src/util/io.h index 25f360c..ac326c8 100644 --- a/src/util/io.h +++ b/src/util/io.h @@ -1,6 +1,7 @@ /* See LICENSE file for copyright and license details. */ #define ewriteall(...) enwriteall(1, __VA_ARGS__) +#define ereadall(...) enreadall(1, __VA_ARGS__) int writeall(int fd, void *buf, size_t n); @@ -10,3 +11,14 @@ enwriteall(int status, int fd, void *buf, size_t n, const char *fname) if (writeall(fd, buf, n)) enprintf(status, "write %s:", fname); } + +ssize_t readall(int fd, void *buf, size_t n); + +static inline size_t +enreadall(int status, int fd, void *buf, size_t n, const char *fname) +{ + ssize_t r = readall(fd, buf, n); + if (r < 0) + enprintf(status, "read %s:", fname); + return (size_t)r; +} |
