1#include <stdio.h>23#undef fread45size_t6fread(void * restrict ptr, size_t size, size_t nmemb,7 FILE * restrict fp)8{9 unsigned char *bp = ptr;10 size_t n, i;11 int c;1213 if (size == 0)14 return 0;1516 for (n = 0; n < nmemb; n++) {17 i = size;18 do {19 if ((c = getc(fp)) == EOF)20 return n;21 *bp++ = c;22 } while (--i);23 }2425 return n;26}