From ea709105b43e6846e6a1e2cfce58ce49038f5338 Mon Sep 17 00:00:00 2001 From: CSRG Date: Sun, 3 Apr 1983 09:29:59 -0800 Subject: [PATCH] BSD 4_2 development Work on file usr/man/man2/pipe.2 Synthesized-from: CSRG/cd1/4.2 --- usr/man/man2/pipe.2 | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 usr/man/man2/pipe.2 diff --git a/usr/man/man2/pipe.2 b/usr/man/man2/pipe.2 new file mode 100644 index 0000000000..12c2863dba --- /dev/null +++ b/usr/man/man2/pipe.2 @@ -0,0 +1,71 @@ +.TH PIPE 2 "12 February 1983" +.UC 4 +.SH NAME +pipe \- create an interprocess communication channel +.SH SYNOPSIS +.nf +.ft B +pipe(fildes) +int fildes[2]; +.fi +.ft R +.SH DESCRIPTION +The +.I pipe +system call +creates an I/O mechanism called a pipe. +The file descriptors returned can +be used in read and write operations. +When the pipe is written using the descriptor +.IR fildes [1] +up to 4096 bytes of data are buffered +before the writing process is suspended. +A read using the descriptor +.IR fildes [0] +will pick up the data. +.PP +It is assumed that after the +pipe has been set up, +two (or more) +cooperating processes +(created by subsequent +.I fork +calls) +will pass data through the +pipe with +.I read +and +.I write +calls. +.PP +The shell has a syntax +to set up a linear array of processes +connected by pipes. +.PP +Read calls on an empty +pipe (no buffered data) with only one end +(all write file descriptors closed) +returns an end-of-file. +.PP +Pipes are really a special case of the +.IR socketpair (2) +call and, in fact, are implemented as such in the system. +.PP +A signal is generated if a write on a pipe with only one end is attempted. +.SH "RETURN VALUE +The function value zero is returned if the +pipe was created; \-1 if an error occurred. +.SH ERRORS +The \fIpipe\fP call will fail if: +.TP 15 +[EMFILE] +Too many descriptors are active. +.TP 15 +[EFAULT] +The \fIfildes\fP buffer is in an invalid area of the process's address +space. +.SH "SEE ALSO" +sh(1), read(2), write(2), fork(2), socketpair(2) +.SH BUGS +Should more than 4096 bytes be necessary in any +pipe among a loop of processes, deadlock will occur. -- 2.20.1