Creates an interprocess channel.
Standard C Library (libc.a)
int pipe ( FileDescriptor)
The pipe subroutine creates an interprocess channel called a pipe and returns two file descriptors, FileDescriptor and FileDescriptor. FileDescriptor is opened for reading and FileDescriptor is opened for writing.
A read operation on the FileDescriptor parameter accesses the data written to the FileDescriptor parameter on a first-in, first-out (FIFO) basis.
Write requests of PIPE_BUF bytes or fewer will not be interleaved (mixed) with data from other processes doing writes on the same pipe. PIPE_BUF is a system variable described in the pathconf (pathconf or fpathconf Subroutine) subroutine. Writes of greater than PIPE_BUF bytes may have data interleaved, on arbitrary boundaries, with other writes.
If O_NONBLOCK or O_NDELAY are set, writes requests of PIPE_BUF bytes or fewer will either succeed completely or fail and return -1 with the errno global variable set to EAGAIN. A write request for more than PIPE_BUF bytes will either transfer what it can and return the number of bytes actually written, or transfer no data and return -1 with the errno global variable set to EAGAIN.
|FileDescriptor||Specifies the address of an array of two integers into which the new file descriptors are placed.|
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned, and the errno global variable is set to identify the error.
The pipe subroutine is
unsuccessful if one or more the following are true:
|EFAULT||The FileDescriptor parameter points to a location outside of the allocated address space of the process.|
|EMFILE||The number of open of file descriptors exceeds the OPEN_MAX value.|
|ENFILE||The system file table is full, or the device containing pipes has no free i-nodes.|
This subroutine is part of Base Operating System (BOS) Runtime.
The read subroutine, select subroutine, write subroutine.
The ksh command, sh command.
Files, Directories, and File Systems for Programmers in AIX 5L Version 5.1 General Programming Concepts: Writing and Debugging Programs.