PIPE(2)PIPE(2)NAMEpipe - create an interprocess channel
int pipe(int fd)
Pipe creates a buffered channel for interprocess I/O communication.
Two file descriptors are returned in fd. Data written to fd is
available for reading from fd and data written to fd is available
for reading from fd.
After the pipe has been established, cooperating processes created by
subsequent fork(2) calls may pass data through the pipe with read and
write calls. The bytes placed on a pipe by one write are contiguous
even if many processes are writing. Write boundaries are preserved:
each read terminates when the read buffer is full or after reading the
last byte of a write, whichever comes first.
The number of bytes available to a read(2) is reported in the Length
field returned by fstat or dirfstat on a pipe (see stat(2)).
When all the data has been read from a pipe and the writer has closed
the pipe or exited, read(2) will return 0 bytes. Writes to a pipe with
no reader will generate a note sys: write on closed pipe.
SEE ALSOintro(2), read(2), pipe(3)DIAGNOSTICS
If a read or a write of a pipe is interrupted, some unknown number of
bytes may have been transferred.
When a read from a pipe returns 0 bytes, it usually means end of file
but is indistinguishable from reading the result of an explicit write
of zero bytes.