diff options
Diffstat (limited to 'tbdiff/tbdiff-io.c')
-rw-r--r-- | tbdiff/tbdiff-io.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/tbdiff/tbdiff-io.c b/tbdiff/tbdiff-io.c index f9324aa..54bcfa7 100644 --- a/tbdiff/tbdiff-io.c +++ b/tbdiff/tbdiff-io.c @@ -15,6 +15,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <stdbool.h> #include <endian.h> #include <unistd.h> #include <assert.h> @@ -52,42 +53,43 @@ static inline void endianswap(void* value, size_t size) #define ENDIANSWAP(v) #endif -size_t tbd_write_uint16(uint16_t value, FILE *stream) { +bool tbd_write_uint16(uint16_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } -size_t tbd_write_uint32(uint32_t value, FILE *stream) { +bool tbd_write_uint32(uint32_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } -size_t tbd_write_uint64(uint64_t value, FILE *stream) { +bool tbd_write_uint64(uint64_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } -size_t tbd_write_time(time_t value, FILE *stream) { +bool tbd_write_time(time_t value, int stream) { uint64_t realv = value; ENDIANSWAP(&realv); - return fwrite(&realv, sizeof(realv), 1, stream); + return (write(stream, &realv, sizeof(realv)) == sizeof(value)); } -size_t tbd_write_mode(mode_t value, FILE *stream) { +bool tbd_write_mode(mode_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } -size_t tbd_write_uid(uid_t value, FILE *stream) { +bool tbd_write_uid(uid_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } -size_t tbd_write_gid(gid_t value, FILE *stream) { +bool tbd_write_gid(gid_t value, int stream) { ENDIANSWAP(&value); - return fwrite(&value, sizeof(value), 1, stream); + return (write(stream, &value, sizeof(value)) == sizeof(value)); } + size_t tbd_read_uint16(uint16_t *value, FILE *stream) { assert(value != NULL); size_t rval = fread(value, sizeof(*value), 1, stream); |