fread.c 404 B

1234567891011121314151617
  1. #include <stdio.h>
  2. __ATTR_LIB_C__ unsigned short fread(void *ptr, short size, short n, FILE *f)
  3. {
  4. unsigned short i,j;
  5. short c,binmode=f->flags&_F_BIN;
  6. f->flags|=_F_BIN;
  7. for(i=0;i<(unsigned short)n;i++)
  8. for(j=0;j<(unsigned short)size;j++)
  9. {
  10. if((c=fgetc(f))<0) goto fread_error;
  11. *(unsigned char*)ptr++=c;
  12. }
  13. fread_error:
  14. f->flags&=binmode|(~_F_BIN);
  15. return i;
  16. }