diff --git a/chp3/binarydata.c b/chp3/binarydata.c new file mode 100644 index 0000000..cae1965 --- /dev/null +++ b/chp3/binarydata.c @@ -0,0 +1,40 @@ +#include + +int main(void) { + FILE *in, *out; + struct pirate { + char name[100]; /* real name */ + unsigned long booty; /* in pounds sterling */ + unsigned int beard_len; /* in inches */ + } p, blackbeard = {"Edward Teach", 950, 48}; + + out = fopen("data", "w"); + if (!out) { + perror("fopen"); + return 1; + } + if (!fwrite(&blackbeard, sizeof(struct pirate), 1, out)) { + perror("fwrite"); + return 1; + } + if (fclose(out)) { + perror("fclose"); + return 1; + } + + in = fopen("data", "r"); + if (!in) { + perror("fopen"); + return 1; + } + if (!fread(&p, sizeof(struct pirate), 1, in)) { + perror("fread"); + return 1; + } + if (fclose(in)) { + perror("fclose"); + return 1; + } + printf("name=\"%s\" booty=%lu beard_len=%u\n", p.name, p.booty, p.beard_len); + return 0; +} diff --git a/chp3/input.c b/chp3/input.c new file mode 100644 index 0000000..3e72a56 --- /dev/null +++ b/chp3/input.c @@ -0,0 +1,7 @@ +#include +#include + +int main(void) { + printf("Limit buffer size is %u bytes.\n", LINE_MAX); + printf("Buffer size is %u bytes.\n", BUFSIZ); +}