NAME
pipe — create an
interprocess channel
SYNOPSIS
#include <unistd.h> int pipe(int fildes[2]);
DESCRIPTION
The pipe() function will create a pipe and place two file descriptors, one each into the arguments fildes [0] and fildes [1], that refer to the open file descriptions for the read and write ends of the pipe. Their integer values will be the two lowest available at the time of the pipe() call. The O_NONBLOCK and FD_CLOEXEC flags shall be clear on both file descriptors. (The fcntl(3) function can be used to set both these flags.)
Data can be written to the file descriptor fildes [1] and read from file descriptor fildes [0]. A read on the file descriptor fildes [0] will access data written to file descriptor fildes [1] on a first-in-first-out basis. It is unspecified whether fildes [0] is also open for writing and whether fildes [1] is also open for reading.
A process has the pipe open for reading (correspondingly writing) if it has a file descriptor open that refers to the read end, fildes [0] (write end, fildes [1]).
Upon successful completion, pipe() will mark for update the st_atime, st_ctime and st_mtime fields of the pipe.
RETURN VALUE
Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error.
ERRORS
The pipe() function will fail if:
EXAMPLES
None.
APPLICATION USAGE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
fcntl(3) , read(3) , write(3) , <fcntl.h> , <unistd.h> .
DERIVATION
Derived from Issue 1 of the SVID.