icon Top 9 categories map      RocketAware > man pages >


Tips: Browse or Search all pages for efficient awareness of more than 6000 of the most popular reusable and open source applications, functions, libraries, and FAQs.

The "RKT couplings" below include links to source code, updates, additional information, advice, FAQs, and overviews.


Search all pages


By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Integer, Floating point, Matrix, Statistics, Boolean, ...

Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


RocketLink!--> Man page versions: OpenBSD FreeBSD NetBSD RedHat Solaris Others

PIPE(2)                   OpenBSD Programmer's Manual                  PIPE(2)

     pipe - create descriptor pair for interprocess communication

     #include <unistd.h>

     pipe(int fildes[2]);

     The pipe() function creates a pipe, which is an object allowing unidirec-
     tional data flow, and allocates a pair of file descriptors.  The first
     descriptor connects to the read end of the pipe, and the second connects
     to the write end, so that data written to fildes[1] appears on (i.e., can
     be read from) fildes[0]. This allows the output of one program to be sent
     to another program: the source's standard output is set up to be the
     write end of the pipe, and the sink's standard input is set up to be the
     read end of the pipe.  The pipe itself persists until all its associated
     descriptors are closed.

     A pipe whose read or write end has been closed is considered widowed.
     Writing on such a pipe causes the writing process to receive a SIGPIPE
     signal.  Widowing a pipe is the only way to deliver end-of-file to a
     reader: after the reader consumes any buffered data, reading a widowed
     pipe returns a zero count.

     On successful creation of the pipe, zero is returned. Otherwise, a value
     of -1 is returned and the variable errno set to indicate the error.

     The pipe() call will fail if:

     [EMFILE]      Too many descriptors are active.

     [ENFILE]      The system file table is full.

     [EFAULT]      The fildes buffer is in an invalid area of the process's
                   address space.

     sh(1),  fork(2),  read(2),  socketpair(2),  write(2)

     The pipe() function conforms to IEEE Std1003.1-1988 (``POSIX'').

     A pipe() function call appeared in Version 6 AT&T UNIX.

OpenBSD 2.6                      June 4, 1993                                1

Source: OpenBSD 2.6 man pages. Copyright: Portions are copyrighted by BERKELEY
SOFTWARE DESIGN, INC., The Regents of the University of California, Massachusetts
Institute of Technology, Free Software Foundation, FreeBSD Inc., and others.

(Corrections, notes, and links courtesy of RocketAware.com)

[Detailed Topics]

[Overview Topics]

Up to: Local Process Communication - Communication between processes running on the same system. Synchronization. File locking. Signals. FIFOs, pipes, et al

RocketLink!--> Man page versions: OpenBSD FreeBSD NetBSD RedHat Solaris Others

Rapid-Links: Search | About | Comments | Submit Path: RocketAware > man pages > pipe.2/
RocketAware.com is a service of Mib Software
Copyright 1999, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments