Branch
Hash :
a9525771
Author :
Date :
2024-12-27T23:24:51
Rename module stdio to stdio-h. * modules/stdio-h: Renamed from modules/stdio. * modules/stdio-h-tests: Renamed from modules/stdio-tests. * modules/stdio-h-c++-tests: Renamed from modules/stdio-c++-tests. * tests/test-stdio-h.c: Renamed from tests/test-stdio.c. * tests/test-stdio-h-c++.cc: Renamed from tests/test-stdio-c++.cc. * tests/test-stdio-h-c++2.cc: Renamed from tests/test-stdio-c++2.cc. * doc/posix-headers/stdio.texi: Update. * doc/posix-functions/fgetc.texi: Update. * doc/posix-functions/fgets.texi: Update. * doc/posix-functions/fprintf.texi: Update. * doc/posix-functions/fputc.texi: Update. * doc/posix-functions/fputs.texi: Update. * doc/posix-functions/fread.texi: Update. * doc/posix-functions/fscanf.texi: Update. * doc/posix-functions/fwrite.texi: Update. * doc/posix-functions/getc.texi: Update. * doc/posix-functions/getchar.texi: Update. * doc/posix-functions/printf.texi: Update. * doc/posix-functions/putc.texi: Update. * doc/posix-functions/putchar.texi: Update. * doc/posix-functions/puts.texi: Update. * doc/posix-functions/read.texi: Update. * doc/posix-functions/scanf.texi: Update. * doc/posix-functions/vfprintf.texi: Update. * doc/posix-functions/vprintf.texi: Update. * doc/posix-functions/write.texi: Update. * modules/* (Depends-on): Update. * modules/stdio: New file.
@node getchar
@subsection @code{getchar}
@findex getchar
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getchar.html}
Gnulib module: stdio-h, nonblocking
@mindex stdio-h
@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio-h}, 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