aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/sys/pipe.2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/sys/pipe.2')
-rw-r--r--lib/libc/sys/pipe.2178
1 files changed, 0 insertions, 178 deletions
diff --git a/lib/libc/sys/pipe.2 b/lib/libc/sys/pipe.2
deleted file mode 100644
index 0bfb8cf4ffb9..000000000000
--- a/lib/libc/sys/pipe.2
+++ /dev/null
@@ -1,178 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pipe.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt PIPE 2
-.Os
-.Sh NAME
-.Nm pipe ,
-.Nm pipe2
-.Nd create descriptor pair for interprocess communication
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn pipe "int fildes[2]"
-.Ft int
-.Fn pipe2 "int fildes[2]" "int flags"
-.Sh DESCRIPTION
-The
-.Fn pipe
-function
-creates a
-.Em pipe ,
-which is an object allowing
-bidirectional data flow,
-and allocates a pair of file descriptors.
-.Pp
-The
-.Fn pipe2
-system call allows control over the attributes of the file descriptors
-via the
-.Fa flags
-argument.
-Values for
-.Fa flags
-are constructed by a bitwise-inclusive OR of flags from the following
-list, defined in
-.In fcntl.h :
-.Bl -tag -width ".Dv O_NONBLOCK"
-.It Dv O_CLOEXEC
-Set the close-on-exec flag for the new file descriptors.
-.It Dv O_NONBLOCK
-Set the non-blocking flag for the ends of the pipe.
-.El
-.Pp
-If the
-.Fa flags
-argument is 0, the behavior is identical to a call to
-.Fn pipe .
-.Pp
-By convention, the first descriptor is normally used as the
-.Em read end
-of the pipe,
-and the second is normally the
-.Em write end ,
-so that data written to
-.Fa fildes[1]
-appears on (i.e., can be read from)
-.Fa 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.
-.Pp
-A pipe that has had an end closed is considered
-.Em widowed .
-Writing on such a pipe causes the writing process to receive
-a
-.Dv 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.
-.Pp
-The bidirectional nature of this implementation of pipes is not
-portable to older systems, so it is recommended to use the convention
-for using the endpoints in the traditional manner when using a
-pipe in one direction.
-.Sh IMPLEMENTATION NOTES
-The
-.Fn pipe
-function calls the
-.Fn pipe2
-system call.
-As a result, system call traces such as those captured by
-.Xr dtrace 1
-or
-.Xr ktrace 1
-will show calls to
-.Fn pipe2 .
-.Sh RETURN VALUES
-.Rv -std pipe
-.Sh ERRORS
-The
-.Fn pipe
-and
-.Fn pipe2
-system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-.Ar fildes
-argument points to an invalid memory location.
-.It Bq Er EMFILE
-Too many descriptors are active.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOMEM
-Not enough kernel memory to establish a pipe.
-.El
-.Pp
-The
-.Fn pipe2
-system call will also fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa flags
-argument is invalid.
-.El
-.Sh SEE ALSO
-.Xr sh 1 ,
-.Xr fork 2 ,
-.Xr read 2 ,
-.Xr socketpair 2 ,
-.Xr write 2
-.Sh HISTORY
-The
-.Fn pipe
-function appeared in
-.At v3 .
-.Pp
-Bidirectional pipes were first used on
-.At V.4 .
-.Pp
-The
-.Fn pipe2
-function appeared in
-.Fx 10.0 .
-.Pp
-The
-.Fn pipe
-function became a wrapper around
-.Fn pipe2
-in
-.Fx 11.0 .