Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
pipe(2)				 System	Calls			       pipe(2)

NAME
       pipe - create an	interprocess channel

SYNOPSIS
       #include	<unistd.h>

       int pipe(int fildes[2]);

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

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

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

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

SunOS 5.10			  23 Apr 2002			       pipe(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | NOTES

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pipe&sektion=2&manpath=SunOS+5.10>

home | help