Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

pipe(2)                          System Calls                          pipe(2)

       pipe - create an interprocess channel

       #include <unistd.h>

       int pipe(int fildes[2]);

       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 read-
       ing and writing.  The O_NDELAY, O_NONBLOCK, and  FD_CLOEXEC  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  st_atime,
       st_ctime, and st_mtime fields of the pipe.

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

       The pipe() function 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.

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

       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStan-
       dard MT-LevelAsync-Signal-Safe

       sh(1), fcntl(2),  fstat(2),  getmsg(2),  poll(2),  putmsg(2),  read(2),
       write(2), attributes(5), standards(5), streamio(7I)

       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).

SunOS 5.10                        23 Apr 2002                          pipe(2)