Branch
Hash :
901563ae
Author :
Date :
2025-09-16T17:08:44
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
@node putc
@subsection @code{putc}
@findex putc
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/putc.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.
@end itemize