fread(3), unlike read(2) which returns a ssize_t, returns a size_t. It doesn't distinguish between error and enf-of-file. Instead, either ferror(3) or feof(3) need to be checked if fread() returned 0. Signed-off-by: Alejandro Colomar <colomar.6.4.3@xxxxxxxxx> --- man3/fopencookie.3 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/man3/fopencookie.3 b/man3/fopencookie.3 index 5394ce4a5..055ec64d7 100644 --- a/man3/fopencookie.3 +++ b/man3/fopencookie.3 @@ -392,7 +392,7 @@ main(int argc, char *argv[]) }; FILE *stream; struct memfile_cookie mycookie; - ssize_t nread; + size_t nread; char buf[1000]; /* Set up the cookie before calling fopencookie() */ @@ -429,11 +429,11 @@ main(int argc, char *argv[]) exit(EXIT_FAILURE); } nread = fread(buf, 1, 2, stream); - if (nread == \-1) { - perror("fread"); - exit(EXIT_FAILURE); - } if (nread == 0) { + if (ferror(stream) != 0) { + fprintf(stderr, "fread failed\en"); + exit(EXIT_FAILURE); + } printf("Reached end of file\en"); break; } -- 2.28.0