diff options
-rw-r--r-- | ioops.c | 23 | ||||
-rw-r--r-- | ioops.h | 2 |
2 files changed, 25 insertions, 0 deletions
@@ -96,3 +96,26 @@ ssize_t write_or_die(int fd, const void *buf, size_t len) return ret; } + +int read_blob_or_die(const char *file, void *blob, size_t count) +{ + int fd, ret; + + fd = open_or_die(file, O_RDONLY); + ret = read_or_die(fd, blob, len); + close(fd); + + return ret; +} + +int write_blob_or_die(const char *file, const void *blob, size_t count) +{ + int fd, ret; + + fd = open_or_die_m(file, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + ret = write_or_die(fd, blob, len); + fdatasync(fd); + close(fd); + + return ret; +} @@ -8,5 +8,7 @@ extern int tun_open_or_die(char *name, int type); extern void pipe_or_die(int pipefd[2], int flags); extern ssize_t read_or_die(int fd, void *buf, size_t count); extern ssize_t write_or_die(int fd, const void *buf, size_t count); +extern int read_blob_or_die(const char *file, void *blob, size_t count); +extern int write_blob_or_die(const char *file, const void *blob, size_t count); #endif /* IOOPS_H */ |