Files
Bruno Haible 901563ae36 Document msvcrt (native Windows) bugs regarding console output.
* doc/posix-functions/fputc.texi: Document a bug found in msvcrt.
* doc/posix-functions/putc.texi: Likewise.
* doc/posix-functions/fwrite.texi: Document another bug found in msvcrt.
2025-09-16 17:08:44 +02:00

51 lines
1.6 KiB
Plaintext

@node fputc
@subsection @code{fputc}
@findex fputc
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputc.html}
Gnulib module: stdio-h, nonblocking, sigpipe
@mindex stdio-h
@mindex nonblocking
@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio-h}, 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, MSVC 14.
@end itemize
Portability problems fixed by Gnulib module @code{stdio-h}, 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, MSVC 14.
@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
This function fails and produces garbled output
when invoked twice, for outputting a non-ASCII character in double-byte encoding,
corresponding to the locale, on some platforms:
mingw in combination with msvcrt,
when the output goes to a Windows console.
@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.
@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 14.
@end itemize