doc: Update regarding MSVC 9.
[gnulib.git] / doc / posix-functions / write.texi
1 @node write
2 @section @code{write}
3 @findex write
4
5 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/write.html}
6
7 Gnulib module: write, nonblocking, sigpipe
8
9 Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
10 @itemize
11 @item
12 When writing to a non-blocking pipe whose buffer is full, this function fails
13 with @code{errno} being set to @code{ENOSPC} instead of @code{EAGAIN} on some
14 platforms:
15 mingw, MSVC 9.
16 @item
17 When writing to a non-blocking pipe on which no reader is currently waiting
18 an amount of bytes that exceeds the pipe buffer's size, then -- even if the
19 pipe's buffer is empty -- this function fails, instead of performing a partial
20 write into the pipe buffer, on some platforms:
21 mingw, MSVC 9.
22 @end itemize
23
24 Portability problems fixed by Gnulib module @code{stdio}, together with module @code{sigpipe}:
25 @itemize
26 @item
27 When writing to a pipe with no readers, this function fails with error
28 @code{EINVAL}, instead of obeying the current @code{SIGPIPE} handler, on
29 some platforms:
30 mingw, MSVC 9.
31 @end itemize
32
33 Portability problems not fixed by Gnulib:
34 @itemize
35 @item
36 This function may fail with error @code{EINTR}, even in programs that don't
37 install any signal handlers, on some platforms:
38 MacOS X 10.5.
39 @end itemize
40
41 For handling @code{EINTR}, Gnulib provides a module @samp{safe-write} with a
42 function @code{safe_write}.