#include #include #include #include /* The C Programming Language: 2nd Edition * * Exercise 8-2: Rewrite `fopen` and `_fillbuf` with fields instead of explicit * bit operations. Compare code size and execution speed. * * Notes: This file uses the standard library exclusively, in contrast to the * partial replacement solution in the other 8-02 files. * * The resulting binary of this file executes in about 0.001s, just like the * partial replacement solution. Its binary is 1KB smaller, however. */ int main() { FILE *fp = fopen("8-02_fopen-and-fillbuf.c", "r"); if (fp != NULL) { puts("We could read the file.\n"); /* pro tip: don't declare this as 'unsigned' or you'll create an * endless loop thanks to EOF typically being negative. Don't waste * half an hour on a newbie mistake like I did. :) */ char c; while ((c = getc(fp)) != EOF) { putchar(c); } } else { puts("Could not open file for reading."); } return 0; }