@section @code{fgetc}
@findex fgetc
-POSIX specification: @url{http://www.opengroup.org/susv3xsh/fgetc.html}
+POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/fgetc.html}
-Gnulib module: ---
+Gnulib module: stdio, nonblocking
-Portability problems fixed by Gnulib:
+Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
+@item
+When reading from a non-blocking pipe whose buffer is empty, this function
+fails with @code{errno} being set to @code{EINVAL} instead of @code{EAGAIN} on
+some platforms:
+mingw, MSVC 9.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
+C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
+is, they require this function to act as if it reads end-of-file if
+@code{feof} would return nonzero. However, on some systems this
+function attempts to read from the underlying file descriptor even if
+the stream's end-of-file indicator is set. These systems include
+glibc and default Solaris.
+@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+This function crashes if the stream's file descriptor has already been
+closed, if @code{MSVC_INVALID_PARAMETER_HANDLING} is
+@code{HAIRY_LIBRARY_HANDLING} or @code{SANE_LIBRARY_HANDLING},
+on some platforms:
+MSVC 9.
@end itemize