blob: de7cea32f236111b29e5efa7c03f6229d53e531b [file] [log] [blame]
@node getc
@section @code{getc}
@findex getc
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/getc.html}
Gnulib module: stdio, nonblocking
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 14.
@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.
@end itemize