Hello Alex, On 9/7/20 12:21 PM, Alejandro Colomar wrote: > 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. Well, gosh, the person who wrote that example really should have read the documentation more closely :-}. Thanks. Patch applied. Cheers, Michael > 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; > } > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/