*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/pipe (2)              
Title
Content
Arch
Section
 

Contents


pipe(2)								       pipe(2)


NAME    [Toc]    [Back]

     pipe - create an interprocess channel

C SYNOPSIS    [Toc]    [Back]

     #include <unistd.h>

     int pipe(int fildes[2]);

DESCRIPTION    [Toc]    [Back]

     pipe creates an I/O mechanism called a pipe and returns two file
     descriptors, fildes<b>[0] and	fildes<b>[1].  IRIX has two distinct versions of
     pipe: the SVR4 version and	the SVR3.2 version.  The SVR3.2	version	is
     faster, and is generally preferred	unless STREAMS semantics are required
     for a specific reason.

     The SVR4 version of pipe returns two STREAMS-based	file descriptors which
     are both opened for reading and writing.  The O_NDELAY and	O_NONBLOCK
     flags are cleared.	 A read	from fildes<b>[0] accesses	the data written to
     fildes<b>[1] on a first-in-first-out (FIFO) basis and	a read from fildes<b>[1]
     accesses the data written to fildes<b>[0] also on a FIFO basis.  The
     FD_CLOEXEC	flag will be clear on both file	descriptors.

     The SVR3.2	version	of pipe	returns	two non-STREAMS-based file
     descriptors.  Fildes[0] is	opened for reading and fildes[1] is opened for
     writing.  Up to PIPE_BUF (defined in limits.h) bytes of data are buffered
     by	the pipe before	the writing process is blocked and guaranteed to be
     written atomically.  The O_NDELAY and O_NONBLOCK flags are	cleared.  A
     read only file descriptor fildes[0] accesses the data written to
     fildes[1] on a first-in-first-out (FIFO) basis.

     Upon successful completion	pipe marks for update the st_atime, st_ctime,
     and st_mtime fields of the	pipe.

     To	use the	SVR4 version of	pipe one must normally tune the	system tunable
     variable svr3pipe to 0 (see systune(1M)).	Otherwise, the SVR3.2 version
     of	pipe is	used, with the exception of applications linked	against
     libnsl.so (-lnsl),	which normally get SVR4-style pipes by default.	 This
     can be disabled by	setting	the environment	variable _LIBNSL_USE_SVR3_PIPE
     to	1.  In this case such applications will	get SVR3.2-styl	pipe
     semantics.

     pipe fails	if:

     EMFILE	    The	maximum	number of file descriptors are currently open.

     ENFILE	    A file table entry could not be allocated.

SEE ALSO    [Toc]    [Back]

      
      
     sh(1), systune(1M), fcntl(2), getmsg(2), intro(3N), poll(2), putmsg(2),
     read(2), write(2),	popen(3S), streamio(7)





									Page 1






pipe(2)								       pipe(2)


DIAGNOSTICS    [Toc]    [Back]

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

NOTES    [Toc]    [Back]

     Since a SVR4 version of pipe is bi-directional, there are two separate
     flows of data.  Therefore,	the size (st_size) returned by a call to
     fstat(2) with argument fildes<b>[0] or fildes<b>[1] is the number of bytes
     available for reading from	fildes<b>[0] or fildes<b>[1] respectively.
     Previously, the size (st_size) returned by	a call to fstat() with
     argument fildes<b>[1]	(the write-end)	was the	number of bytes	available for
     reading from fildes<b>[0] (the read-end).


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
pipe OpenBSD create descriptor pair for interprocess communication
pipe NetBSD create descriptor pair for interprocess communication
pipe FreeBSD create descriptor pair for interprocess communication
socket HP-UX interprocess communications
stdipc IRIX standard interprocess communication package
datapool IRIX Fortran Interprocess Data Sharing
ftok Tru64 Generate a standard interprocess communication key
ipc Linux System V interprocess communication mechanisms
unix Linux Sockets for local interprocess communication.
ipcs Tru64 Reports Interprocess Communication (IPC) facility status
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service