write
=====

POSIX specification:
 http://www.opengroup.org/onlinepubs/9699919799/functions/write.html

Gnulib module: write, nonblocking, sigpipe

Portability problems fixed by Gnulib module stdio, together with module nonblocking:

  * When writing to a non-blocking pipe whose buffer is full, this function fails with errno being set to ENOSPC instead of EAGAIN on some platforms: mingw.

  * 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.

Portability problems fixed by Gnulib module stdio, together with module sigpipe:

  * When writing to a pipe with no readers, this function fails with error EINVAL, instead of obeying the current SIGPIPE handler, on some platforms: mingw.

Portability problems not fixed by Gnulib:

  * This function may fail with error EINTR, even in programs that don't install any signal handlers, on some platforms: MacOS X 10.5.

For handling EINTR, Gnulib provides a module safe-write with a function safe_write.