#include #include "dietstdio.h" #include size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream) { int res; #ifdef WANT_BUFFERED_STDIO unsigned long i,j; j=size*nmemb; #ifdef WANT_UNGETC if (stream->ungotten) { *(char*)ptr=stream->ungetbuf; ptr=((char*)ptr)+1; --j; } if (!j) return 1; #endif for (i=0; iungotten) { *(char*)ptr=stream->ungetbuf; ptr=((char*)ptr)+1; --j; } if (!j) return 1; res=read(stream->fd,ptr,j); #else res=read(stream->fd,ptr,size*nmemb); #endif if (res<0) { stream->flags|=ERRORINDICATOR; return 0; } else if (resflags & UNSEEKABLE) || ((stream->flags & UNSEEKABLE) && res == 0)) stream->flags|=EOFINDICATOR; return res/size; #endif }