From: ewt Date: Tue, 12 Dec 1995 23:25:31 +0000 (+0000) Subject: Changed to use file descriptors instead of stdio X-Git-Tag: rpm-4.4-release~5720 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2239fa559cc72de97d8bda3d3af357d07c27bf5b;p=platform%2Fupstream%2Frpm.git Changed to use file descriptors instead of stdio CVS patchset: 15 CVS date: 1995/12/12 23:25:31 --- diff --git a/lib/header.c b/lib/header.c index 1164965..2085c53 100644 --- a/lib/header.c +++ b/lib/header.c @@ -4,10 +4,12 @@ */ #include -#include #include -#include #include +#include +#include +#include + #include "header.h" #define INDEX_MALLOC_SIZE 8 @@ -37,23 +39,23 @@ struct indexEntry { /********************************************************************/ -void writeHeader(FILE *f, Header h) +void writeHeader(int fd, Header h) { int_32 l; /* First write out the length of the index (count of index entries) */ l = htonl(h->entries_used); - fwrite(&l, sizeof(l), 1, f); + write(fd, &l, sizeof(l)); /* And the length of the data (number of bytes) */ l = htonl(h->data_used); - fwrite(&l, sizeof(l), 1, f); + write(fd, &l, sizeof(l)); /* Now write the index */ - fwrite(h->index, sizeof(struct indexEntry), h->entries_used, f); + write(fd, h->index, sizeof(struct indexEntry) * h->entries_used); /* Finally write the data */ - fwrite(h->data, h->data_used, 1, f); + write(fd, h->data, h->data_used); } Header mmapHeader(int fd, long offset) @@ -90,7 +92,7 @@ Header mmapHeader(int fd, long offset) return h; } -Header readHeader(FILE *f) +Header readHeader(int fd) { int_32 il, dl; @@ -98,24 +100,24 @@ Header readHeader(FILE *f) malloc(sizeof(struct headerToken)); /* First read the index length (count of index entries) */ - fread(&il, sizeof(il), 1, f); + read(fd, &il, sizeof(il)); il = ntohl(il); /* Then read the data length (number of bytes) */ - fread(&dl, sizeof(dl), 1, f); + read(fd, &dl, sizeof(dl)); dl = ntohl(dl); /* Next read the index */ h->index = malloc(il * sizeof(struct indexEntry)); h->entries_malloced = il; h->entries_used = il; - fread(h->index, sizeof(struct indexEntry), il, f); + read(fd, h->index, sizeof(struct indexEntry) * il); /* Finally, read the data */ h->data = malloc(dl); h->data_malloced = dl; h->data_used = dl; - fread(h->data, dl, 1, f); + read(fd, h->data, dl); h->mutable = 0; diff --git a/lib/header.h b/lib/header.h index bb258c2..5764e04 100644 --- a/lib/header.h +++ b/lib/header.h @@ -28,9 +28,9 @@ typedef unsigned int uint_32; typedef struct headerToken *Header; /* read and write a header from a file */ -Header readHeader(FILE *f); +Header readHeader(int fd); Header mmapHeader(int fd, long offset); -void writeHeader(FILE *f, Header h); +void writeHeader(int fd, Header h); /* load and unload a header from a chunk of memory */ Header loadHeader(void *p);