X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fposix-functions%2Fwrite.texi;h=3e8df86ae82eab51c3ad9a800e28ad4ecdfc46fb;hb=e395879b76b260057f48dd54d879df2fc5b2e74d;hp=9f81f32418f71619d5ad9597a88abc8ccd68aac1;hpb=94b87393b6947b51b2a842cd88820a3cb60d8cd4;p=gnulib.git diff --git a/doc/posix-functions/write.texi b/doc/posix-functions/write.texi index 9f81f3241..3e8df86ae 100644 --- a/doc/posix-functions/write.texi +++ b/doc/posix-functions/write.texi @@ -2,19 +2,44 @@ @section @code{write} @findex write -POSIX specification: @url{http://www.opengroup.org/susv3xsh/write.html} +POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/write.html} -Gnulib module: write, sigpipe +Gnulib module: write, nonblocking, sigpipe -Portability problems fixed by Gnulib: +Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}: +@itemize +@item +This function crashes when invoked with invalid arguments on some platforms: +MSVC 9. +@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 9. +@item +When writing to a non-blocking pipe on which no reader is currently waiting +an amount of bytes that exceeds the pipe buffer's size, then -- even if the +pipe's buffer is empty -- this function fails, instead of performing a partial +write into the pipe buffer, on some platforms: +mingw, MSVC 9. +@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 with error @code{EINVAL}, instead of obeying the current @code{SIGPIPE} handler, on some platforms: -mingw. +mingw, MSVC 9. @end itemize Portability problems not fixed by Gnulib: @itemize +@item +This function may fail with error @code{EINTR}, even in programs that don't +install any signal handlers, on some platforms: +MacOS X 10.5. @end itemize + +For handling @code{EINTR}, Gnulib provides a module @samp{safe-write} with a +function @code{safe_write}.