mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-18 23:42:00 +03:00
glibc was not the only platform where fprintf(fopen(,"r")) fails to detect errors; cygwin 1.7.9 is another culprit (although it will be fixed for 1.7.10), and I suspect that several other platforms were failing perror2 for the same reason. At this point, there are so many functions affected, and the way to avoid the bug is easy enough (don't pass bogus streams to output-producing functions), that I'm not worried about fixing things other than to document them. * tests/test-perror2.c (main): Relax test on requiring detection of stream errors, and use unbuffered stream. * doc/posix-functions/dprintf.texi (dprintf): Document bug. * doc/posix-functions/fprintf.texi (fprintf): Likewise. * doc/posix-functions/fputc.texi (fputc): Likewise. * doc/posix-functions/fputs.texi (fputs): Likewise. * doc/posix-functions/fputws.texi (fputws): Likewise. * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. * doc/posix-functions/fwrite.texi (fwrite): Likewise. * doc/posix-functions/getopt.texi (getopt): Likewise. * doc/posix-functions/perror.texi (perror): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/psiginfo.texi (psiginfo): Likewise. * doc/posix-functions/psignal.texi (psignal): Likewise. * doc/posix-functions/putc.texi (putc): Likewise. * doc/posix-functions/putc_unlocked.texi (putc_unlocked): Likewise. * doc/posix-functions/putchar.texi (putchar): Likewise. * doc/posix-functions/putchar_unlocked.texi (putchar_unlocked): Likewise. * doc/posix-functions/puts.texi (puts): Likewise. * doc/posix-functions/putwc.texi (putwc): Likewise. * doc/posix-functions/putwchar.texi (putwchar): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/wordexp.texi (wordexp): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
36 lines
1.1 KiB
Plaintext
36 lines
1.1 KiB
Plaintext
@node fwrite
|
|
@section @code{fwrite}
|
|
@findex fwrite
|
|
|
|
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/fwrite.html}
|
|
|
|
Gnulib module: stdio, nonblocking, sigpipe
|
|
|
|
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
|
|
@itemize
|
|
@item
|
|
When writing to a non-blocking pipe whose buffer is full, this function fails
|
|
with @code{errno} being set to @code{ENOSPC} instead of @code{EAGAIN} on some
|
|
platforms:
|
|
mingw.
|
|
@end itemize
|
|
|
|
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{sigpipe}:
|
|
@itemize
|
|
@item
|
|
When writing to a pipe with no readers, this function fails, instead of
|
|
obeying the current @code{SIGPIPE} handler, on some platforms:
|
|
mingw.
|
|
@end itemize
|
|
|
|
Portability problems not fixed by Gnulib:
|
|
@itemize
|
|
@item
|
|
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
|
|
upon failure.
|
|
@item
|
|
On some platforms, this function does not set @code{errno} or the
|
|
stream error indicator on attempts to write to a read-only stream:
|
|
Cygwin 1.7.9.
|
|
@end itemize
|