shithub: scc

ref: 4f6b84ae2b0ddb9b0ed54470606262224148855f
dir: /src/libc/stdio/fread.c/

View raw version
#include <stdio.h>

#undef fread

size_t
fread(void * restrict ptr, size_t size, size_t nmemb,
      FILE * restrict fp)
{
	unsigned char *bp = ptr;
	size_t n, i;
	int c;

	if (size == 0)
		return 0;

	for (n = 0; n < nmemb; n++) {
		i = size;
		do {
			if ((c = getc(fp)) == EOF)
				return n;
			*bp++ = c;
		} while (--i);
	}

	return n;
}