term% cat index.txt PIPE(2) System Calls Manual PIPE(2)
NAME
pipe - create an interprocess channel
SYNOPSIS
pipe(fildes)
int fildes[2];
DESCRIPTION
The returned file descriptors are the ends of pair of cross-connected
streams (See stream(4)). Data written via fildes[1] is available for
reading via fildes[0] and vice versa.
It is assumed that after the pipe has been set up, two (or more) coop‐
erating processes (created by subsequent fork calls) will pass data
through the pipe with read and write calls. The record structure in‐
duced by write calls is maintained by a pipe and is visible to a
reader, provided no line disciplines modules have been pushed into the
pipe stream; see write(2).
The Shell has a syntax to set up a linear array of processes connected
by pipes.
Write calls on a one-ended pipe raise signal SIGPIPE. Read calls on a
one-ended pipe with no data in it return an end-of-file for the first
several attempts, then raise SIGPIPE.
SEE ALSO
sh(1), read(2), write(2), fork(2)
DIAGNOSTICS
The function value zero is returned if the pipe was created; -1 if too
many files are already open.
BUGS
Should too much buffering be necessary in any pipeline among a loop of
processes, deadlock will occur.
PIPE(2)