Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pipe(2) [hpux man page]

pipe(2) 							System Calls Manual							   pipe(2)

NAME
pipe() - create an interprocess channel SYNOPSIS
DESCRIPTION
creates an I/O mechanism called a pipe and returns two file descriptors, fildes[0] and fildes[1]. fildes[0] is opened for reading and fildes[1] is opened for writing. A read-only file descriptor fildes[0] accesses the data written to fildes[1] on a first-in-first-out (FIFO) basis. For details of the I/O behavior of pipes see read(2) and write(2). By default, HP-UX pipes are not STREAMS-based. It is possible to generate the kernel so that all pipes created on a system are STREAMS- based. This can only be done for HP-UX releases 10.0 and later. STREAMS-based FIFOs (created by or are not supported on HP-UX. To generate a kernel that supports STREAMS-based pipes: o STREAMS/UX must be installed. o The module and the driver must be included in the file. (When STREAMS/UX is installed, and are automatically added to the system file.) o The tunable parameter (see streampipes(5)) must be set to 1 in the file. (This is not automatically done when STREAMS/UX is installed.) o The kernel must be generated and the system rebooted. Once this is done, all pipes created by will be STREAMS-based. For more information, see EXAMPLES
The following example uses to implement the command string RETURN VALUE
returns one of the following values: Successful completion. Failure. is set to indicate the error. ERRORS
sets to one of the following error values if the corresponding condition is true. or more file descriptors are currently open. The system file table is full. The file system lacks sufficient space to create the pipe. Could not allocate resources for both Stream heads (STREAMS-based pipes only). SEE ALSO
sh(1), read(2), write(2), popen(3S), privileges(5), streampipes(5), streamio(7). STANDARDS CONFORMANCE
pipe(2)

Check Out this Related Man Page

pipe(2) 							System Calls Manual							   pipe(2)

NAME
pipe - Creates an interprocess channel SYNOPSIS
#include <unistd.h> int pipe ( int filedes[2] ); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: pipe(): XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
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. 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. System V Compatibility The pipe() function creates an interprocess channel called a pipe and returns two file descriptors, filedes[0] and filedes[1]. Both file descriptors are STREAMS based and are bidirectional. Data written on filedes[0] appears on filedes[1] and vice versa. Data is read in a first-in, first-out (FIFO) basis. Under both behaviors, the O_NONBLOCK and the FD_CLOEXC flags are set clear on both file descriptors. (The fcntl() function can be used to set the O_NONBLOCK flag.) Upon successful completion, the pipe() function marks the st_atime, st_ctime and st_mtime fields of the pipe for update. NOTES
When a read or write system call on a pipe is interrupted by a signal and no bytes have been transferred through the pipe, the read or write system call returns a -1 and errno is set to [EINTR]. This behavior is different from previous releases, when both system calls either restarted the transfer or caused errno to be set to [EINTR], depending on the setting of the SA_RESTART flag for the interrupting signal. As a result of this change, applications must now either handle the [EINTR] return or block any expected signals for the duration of the read or write operation. [Tru64 UNIX] When compiled in the X/Open UNIX environment, calls to the pipe() function are internally renamed by prepending _E to the function name. When you are debugging a module that includes the pipe() function and for which _XOPEN_SOURCE_EXTENDED has been defined, use _Epipe to refer to the pipe() call. See standards(5) for further information. 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: The filedes parameter is an invalid address. A read() or a write() on a pipe is interrupted by a signal and no bytes have been transferred through the pipe. More than OPEN_MAX-2 file descriptors are already opened by this process. [Tru64 UNIX] More than getdtablesize(2) file descriptors are already opened by this process. The system file table is full, or the device containing pipes has no free i-nodes. [Tru64 UNIX] The system was unable to allocate kernel memory for more file descrip- tors. RELATED INFORMATION
Commands: sh(1) Functions: fcntl(2), getmsg(2), poll(2), putmsg(2), read(2), select(2), write(2), getdtablesize(2) Standards: standards(5) delim off pipe(2)
Man Page