NAME
pipe - Creates an interprocess channel.
SYNOPSIS
int pipe (
int filedes[2] );
PARAMETERS
filedes Specifies the address of an array of two integers
into which the new file descriptors are placed.
DESCRIPTION
The pipe() function creates a unidirectional interprocess
channel called a pipe, and returns two file descriptors,
filedes[0] and filedes[1]. The file descriptor specified by
the filedes[0] parameter is opened for reading and the file
descriptor specified by the filedes[1] parameter is opened
for writing. Their integer values will be the two lowest
available at the time of the call to the pipe() function.
The O_NONBLOCK flag will be clear on both file descriptors.
(The fcntl() function can be used to set the O_NONBLOCK
flag.)
A process has the pipe open for reading if it has a file
descriptor open that refers to the read end, filedes[0]. A
process has the pipe open for writing if it has a file
descriptor open that refers to the write end, filedes[1]. A
read on file descriptor filedes[0] accesses the data written
to filedes[1] on a first-in, first-out (FIFO) basis.
Upon successful completion, the pipe() function marks the
st_atime, st_ctime and st_mtime fields of the pipe for
update.
The FD_CLOEXEC flag will be clear on both file descriptors.
NOTES
AES Support Level:
Full use
RETURN VALUES
Upon successful completion, a value of 0 (zero) is returned.
If the pipe() function fails, a value of -1 is returned and
errno is set to indicate the error.
ERRORS
If the pipe() function fails, errno may be set to one of the
following values:
[EFAULT] The filedes parameter is an invalid address.
[EMFILE] More than OPEN_MAX-2 file descriptors are already
open by this process.
[ENFILE] The system file table is full, or the device con-
taining pipes has no free i-nodes.
RELATED INFORMATION
Functions: read(2), fcntl(2), select(2), write(2)
Commands: sh(1)
Acknowledgement and Disclaimer