fxlibc/src/libc/stdio/fread.c

16 lines
353 B
C

#include <stdio.h>
#include <string.h>
#include "fileutil.h"
size_t fread(void *data, size_t membsize, size_t nmemb, FILE *fp)
{
size_t request_size;
if(__builtin_umul_overflow(membsize, nmemb, &request_size)) {
fp->error = 1;
return 0;
}
ssize_t read_size = __fp_fread2(fp, data, request_size, -1);
return (read_size < 0) ? 0 : read_size;
}