#include "file.h" #include size_t fread(void *buf, size_t size, size_t count, struct __opaque_file *stream) { __libc_file_lock(stream); size_t total = size * count; if (total == 0) { __libc_file_unlock(stream); return 0; } long ret = __libc_file_read(stream, buf, total); if (ret == 0) { stream->f_flags |= FILE_EOF; } if (ret < 0) { stream->f_flags |= FILE_ERR; ret = 0; } __libc_file_unlock(stream); return ret; }