304 |
child process. The need to flush the output port can be |
child process. The need to flush the output port can be |
305 |
avoided by making it unbuffered using @code{setvbuf}. |
avoided by making it unbuffered using @code{setvbuf}. |
306 |
|
|
307 |
@vindex PIPE_BUF |
@defvar PIPE_BUF |
308 |
Writes occur atomically provided the size of the data in bytes |
A write of up to @code{PIPE_BUF} many bytes to a pipe is atomic, |
309 |
is not greater than the value of @code{PIPE_BUF}. Note that |
meaning when done it goes into the pipe instantaneously and as a |
310 |
the output port is likely to block if too much data (typically |
contiguous block (@pxref{Pipe Atomicity,, Atomicity of Pipe I/O, libc, |
311 |
equal to @code{PIPE_BUF}) has been written but not yet read |
The GNU C Library Reference Manual}). |
312 |
from the input port. |
@end defvar |
313 |
|
|
314 |
|
Note that the output port is likely to block if too much data has been |
315 |
|
written but not yet read from the input port. Typically the capacity |
316 |
|
is @code{PIPE_BUF} bytes. |
317 |
@end deffn |
@end deffn |
318 |
|
|
319 |
The next group of procedures perform a @code{dup2} |
The next group of procedures perform a @code{dup2} |