System Calls pipe(2)
NAME
pipe - create an interprocess channel
SYNOPSIS
#include
int pipe(int fildes[2]);
DESCRIPTION
The pipe() function creates an I/O mechanism called a pipe
and returns two file descriptors, fildes[0] and fildes[1].
The files associated with fildes[0] and fildes[1] are
streams and are both opened for reading and writing. The
ONDELAY, ONONBLOCK, and FDCLOEXEC flags are cleared on
both file descriptors. The fcntl(2) function can be used to
set these flags.
A read from fildes[0] accesses the data written to fildes[1]
on a first-in-first-out (FIFO) basis and a read from
fildes[1] accesses the data written to fildes[0] also on a
FIFO basis.
Upon successful completion pipe() marks for update the
statime, stctime, and stmtime fields of the pipe.
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is
returned and errno is set to indicate the error.
ERORS
The pipe() function will fail if:
EMFILE More than {OPENMAX} file descriptors are already
in use by this process.
ENFILE The number of simultaneously open files in the
system would exceed a system-imposed limit.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 23 Apr 2002 1
System Calls pipe(2)
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard
MT-Level Async-Signal-Safe
SEE ALSO
sh(1), fcntl(2), fstat(2), getmsg(2), poll(2), putmsg(2),
read(2), write(2), attributes(5), standards(5), streamio(7I)
NOTES
Since a pipe is bi-directional, there are two separate flows
of data. Therefore, the size (stsize) returned by a call to
fstat(2) with argument fildes[0] or fildes[1] is the number
of bytes available for reading from fildes[0] or fildes[1]
respectively. Previously, the size (stsize) returned by a
call to fstat() with argument fildes[1] (the write-end) was
the number of bytes available for reading from fildes[0]
(the read-end).
SunOS 5.11 Last change: 23 Apr 2002 2
|