pipe man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

PIPE(2)								       PIPE(2)

NAME
       pipe - create an interprocess channel

SYNOPSIS
       #include <unistd.h>

       int pipe(int fildes[2]);

       int pipe2(int fildes[2], int flags);

DESCRIPTION
       The  pipe() and pipe2() functions create 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 pipe()  call  will	 clear	the  O_NDELAY,
       O_NONBLOCK, and FD_CLOEXEC flags on both file descriptors. The fcntl(2)
       function can be used to set these flags.

       The pipe2() call will clear the O_NDELAY on both filedescriptors.   The
       flags  argument may be used to specify attributes on both file descrip‐
       tors.  pipe2() called with a flags value of 0 will  behave  identically
       to  pipe().  Values for flags are constructed by a bitwise-inclusive-OR
       of flags from the following list, defined in <fcntl.h>.

O_NONBLOCK
	    Both file descriptors will be placed in  non-blocking  mode.  This
	    corresponds to the O_NONBLOCK flag to fcntl(2).

O_CLOEXEC
	    Both file descriptors will be opened with the FD_CLOEXEC flag set.
	    Both file descriptors will be closed prior to  any	future	exec()
	    calls.

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 st_atime, st_ctime, and
st_mtime fields of the pipe.

RETURN VALUES
       Upon successful completion, 0 is returned. Otherwise,  −1  is  returned
       and errno is set to indicate the error.

ERRORS
       The pipe() and pipe2() functions will fail if:

       EMFILE
		 More  than  {OPEN_MAX} 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.

       EFAULT
		 The fildes[2] argument points to an illegal address.

       The pipe2() function will also fail if:

       EINVAL
		 The flags argument is illegal. Valid flags are zero or a bit‐
		 wise inclusive-OR of O_CLOEXEC and O_NONBLOCK.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬───────────────────┐
       │  ATTRIBUTE TYPE    │  ATTRIBUTE 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), open(2), attributes(5), standards(5), streamio(7I)

NOTES
       Since  a	 pipe is bi-directional, there are two separate flows of data.
       Therefore, the size (st_size) returned by a call to fstat(2) with argu‐
       ment  fildes[0] or fildes[1] is the number of bytes available for read‐
       ing from fildes[0] or  fildes[1]	 respectively.	Previously,  the  size
       (st_size)  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).

				 Apr 19, 2013			       PIPE(2)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net