fxlibc/src/libc/stdio/fread.c

16 lines
353 B
C
Raw Normal View History

2022-01-05 21:25:41 +01:00
#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)) {
2022-01-05 21:25:41 +01:00
fp->error = 1;
return 0;
}
ssize_t read_size = __fp_fread2(fp, data, request_size, -1);
return (read_size < 0) ? 0 : read_size;
2022-01-05 21:25:41 +01:00
}