Reading or writing pipe data is atomic if the size of data written
is not greater than
PIPE_BUF. This means that the data transfer
seems to be an instantaneous unit, in that nothing else in the system
can observe a state in which it is partially complete. Atomic I/O may
not begin right away (it may need to wait for buffer space or for data),
but once it does begin, it finishes immediately.
Reading or writing a larger amount of data may not be atomic; for
example, output data from other processes sharing the descriptor may be
interspersed. Also, once
PIPE_BUF characters have been written,
further writes will block until some characters are read.
See section Limits on File System Capacity, for information about the
Go to the first, previous, next, last section, table of contents.