]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/socketpair.2
fanotify.7: tfix
[thirdparty/man-pages.git] / man2 / socketpair.2
CommitLineData
fea681da
MK
1.\" Copyright (c) 1983, 1991 The Regents of the University of California.
2.\" All rights reserved.
3.\"
a9cd9cb7 4.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
fea681da
MK
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\" notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\" notice, this list of conditions and the following disclaimer in the
12.\" documentation and/or other materials provided with the distribution.
13.\" 3. All advertising materials mentioning features or use of this software
14.\" must display the following acknowledgement:
15.\" This product includes software developed by the University of
16.\" California, Berkeley and its contributors.
17.\" 4. Neither the name of the University nor the names of its contributors
18.\" may be used to endorse or promote products derived from this software
19.\" without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE.
8c9302dc 32.\" %%%LICENSE_END
fea681da
MK
33.\"
34.\" @(#)socketpair.2 6.4 (Berkeley) 3/10/91
35.\"
36.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
37.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
c11b1abf
MK
38.\" Modified 2002-07-22 by Michael Kerrisk <mtk.manpages@gmail.com>
39.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
0cc9687d 40.\" 2008-10-11, mtk: Add description of SOCK_NONBLOCK and SOCK_CLOEXEC
fea681da 41.\"
9ba01802 42.TH SOCKETPAIR 2 2019-03-06 "Linux" "Linux Programmer's Manual"
fea681da
MK
43.SH NAME
44socketpair \- create a pair of connected sockets
45.SH SYNOPSIS
53a6b01d 46.BR "#include <sys/types.h>" " /* See NOTES */"
fea681da
MK
47.br
48.B #include <sys/socket.h>
68e4db0a 49.PP
2269e870
MK
50.BI "int socketpair(int " domain ", int " type ", int " protocol \
51", int " sv [2]);
fea681da
MK
52.SH DESCRIPTION
53The
31e9a9ec 54.BR socketpair ()
2269e870
MK
55call creates an unnamed pair of connected sockets in the specified
56.IR domain ,
fea681da
MK
57of the specified
58.IR type ,
59and using the optionally specified
60.IR protocol .
2269e870
MK
61For further details of these arguments, see
62.BR socket (2).
efeece04 63.PP
d9cb0d7d 64The file descriptors used in referencing the new sockets are returned in
fea681da
MK
65.IR sv [0]
66and
67.IR sv [1].
68The two sockets are indistinguishable.
47297adb 69.SH RETURN VALUE
c13182ef 70On success, zero is returned.
1548a03a 71On error, \-1 is returned,
fea681da 72.I errno
1548a03a
MK
73is set appropriately, and
74.I sv
75is left unchanged
efeece04 76.PP
53ee58a3
MK
77On Linux (and other systems),
78.BR socketpair ()
79does not modify
80.I sv
81on failure.
82A requirement standardizing this behavior was added in POSIX.1-2016.
83.\" http://austingroupbugs.net/view.php?id=483
fea681da
MK
84.SH ERRORS
85.TP
86.B EAFNOSUPPORT
87The specified address family is not supported on this machine.
88.TP
89.B EFAULT
90The address
91.I sv
92does not specify a valid part of the process address space.
93.TP
94.B EMFILE
26c32fab 95The per-process limit on the number of open file descriptors has been reached.
fea681da
MK
96.TP
97.B ENFILE
e258766b 98The system-wide limit on the total number of open files has been reached.
fea681da
MK
99.TP
100.B EOPNOTSUPP
101The specified protocol does not support creation of socket pairs.
102.TP
103.B EPROTONOSUPPORT
104The specified protocol is not supported on this machine.
47297adb 105.SH CONFORMING TO
9fe752d0 106POSIX.1-2001, POSIX.1-2008, 4.4BSD.
e511ffb6 107.BR socketpair ()
8e9b2765 108first appeared in 4.2BSD.
1c44bd5b 109It is generally portable to/from
fea681da 110non-BSD systems supporting clones of the BSD socket layer (including
efbfd7ec 111System\ V variants).
fea681da 112.SH NOTES
fcac1f5a 113On Linux, the only supported domains for this call are
0daa9e92 114.B AF_UNIX
fea681da 115(or synonymously,
fcac1f5a
ES
116.BR AF_LOCAL )
117and
118.B AF_TIPC
119.\" commit: 70b03759e9ecfae400605fa34f3d7154cccbbba3
120(since Linux 4.12).
efeece04 121.PP
0cc9687d
MK
122Since Linux 2.6.27,
123.BR socketpair ()
124supports the
125.BR SOCK_NONBLOCK
126and
127.BR SOCK_CLOEXEC
57f8da4c
MK
128flags in the
129.I type
130argument, as described in
0cc9687d 131.BR socket (2).
efeece04 132.PP
9fe752d0 133POSIX.1 does not require the inclusion of
53a6b01d
MK
134.IR <sys/types.h> ,
135and this header file is not required on Linux.
136However, some historical (BSD) implementations required this header
137file, and portable applications are probably wise to include it.
47297adb 138.SH SEE ALSO
fea681da
MK
139.BR pipe (2),
140.BR read (2),
141.BR socket (2),
142.BR write (2),
5dfedcae 143.BR socket (7),
fea681da 144.BR unix (7)