bin/108118: [libc] files should not cache their EOF status

Jilles Tjoelker jilles at
Sat Apr 4 07:56:45 PDT 2009

The way I read POSIX, FreeBSD's current behaviour seems correct. Calling
fread(3) is equivalent to calling fgetc(3) an appropriate number of
times, and fgetc(3) shall fail if the end-of-file indicator is set for
the stream, even if data is available on the underlying file.

Apparently, POSIX aligns with the C standard here; System V tradition is
not to check the end-of-file indicator here. Both
src/lib/libc/stdio/refill.c (__srefill()) and Solaris fgetc(3) manpage
agree about this.

Jilles Tjoelker

More information about the freebsd-standards mailing list