.\" Copyright (c) 1980, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" %sccs.include.redist.man%
.\" @(#)pipe.2 8.1 (Berkeley) %G%
.Nd create descriptor pair for interprocess communication
which is an object allowing
unidirectional data flow,
and allocates a pair of file descriptors.
The first descriptor connects to the
and the second connects to the
appears on (i.e., can be read from)
This allows the output of one program to be
the source's standard output is set up to be
the write end of the pipe,
and the sink's standard input is set up to be
the read end of the pipe.
The pipe itself persists until all its associated descriptors are
A pipe whose read or write end has been closed is considered
Writing on such a pipe causes the writing process to receive
Widowing a pipe is the only way to deliver end-of-file to a reader:
after the reader consumes any buffered data, reading a widowed pipe
Pipes are really a special case of the
call and, in fact, are implemented as such in the system.
On successful creation of the pipe, zero is returned. Otherwise,
a value of -1 is returned and the variable
Too many descriptors are active.
The system file table is full.
buffer is in an invalid area of the process's address
function call appeared in Version 6 AT&T UNIX.