2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright (c) 1983, 1991 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. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by the University of
|
|
|
|
.\" California, Berkeley and its contributors.
|
|
|
|
.\" 4. 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.
|
|
|
|
.\"
|
|
|
|
.\" @(#)socketpair.2 6.4 (Berkeley) 3/10/91
|
|
|
|
.\"
|
|
|
|
.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
|
|
|
|
.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
|
2007-09-20 06:52:22 +00:00
|
|
|
.\" Modified 2002-07-22 by Michael Kerrisk <mtk.manpages@gmail.com>
|
|
|
|
.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
|
2008-10-11 05:47:36 +00:00
|
|
|
.\" 2008-10-11, mtk: Add description of SOCK_NONBLOCK and SOCK_CLOEXEC
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
2008-10-11 05:47:36 +00:00
|
|
|
.TH SOCKETPAIR 2 2008-10-11 "Linux" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
|
|
|
socketpair \- create a pair of connected sockets
|
|
|
|
.SH SYNOPSIS
|
2007-06-10 18:08:27 +00:00
|
|
|
.BR "#include <sys/types.h>" " /* See NOTES */"
|
2004-11-03 13:51:07 +00:00
|
|
|
.br
|
|
|
|
.B #include <sys/socket.h>
|
|
|
|
.sp
|
2008-08-19 14:34:48 +00:00
|
|
|
.BI "int socketpair(int " domain ", int " type ", int " protocol \
|
|
|
|
", int " sv [2]);
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
2005-11-02 11:34:24 +00:00
|
|
|
.BR socketpair ()
|
2008-08-19 14:34:48 +00:00
|
|
|
call creates an unnamed pair of connected sockets in the specified
|
|
|
|
.IR domain ,
|
2004-11-03 13:51:07 +00:00
|
|
|
of the specified
|
|
|
|
.IR type ,
|
|
|
|
and using the optionally specified
|
|
|
|
.IR protocol .
|
2008-08-19 14:34:48 +00:00
|
|
|
For further details of these arguments, see
|
|
|
|
.BR socket (2).
|
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
The descriptors used in referencing the new sockets are returned in
|
|
|
|
.IR sv [0]
|
|
|
|
and
|
|
|
|
.IR sv [1].
|
|
|
|
The two sockets are indistinguishable.
|
|
|
|
.SH "RETURN VALUE"
|
2007-04-12 22:42:49 +00:00
|
|
|
On success, zero is returned.
|
|
|
|
On error, \-1 is returned, and
|
2004-11-03 13:51:07 +00:00
|
|
|
.I errno
|
|
|
|
is set appropriately.
|
|
|
|
.SH ERRORS
|
|
|
|
.TP
|
|
|
|
.B EAFNOSUPPORT
|
|
|
|
The specified address family is not supported on this machine.
|
|
|
|
.TP
|
|
|
|
.B EFAULT
|
|
|
|
The address
|
|
|
|
.I sv
|
|
|
|
does not specify a valid part of the process address space.
|
|
|
|
.TP
|
|
|
|
.B EMFILE
|
|
|
|
Too many descriptors are in use by this process.
|
|
|
|
.TP
|
|
|
|
.B ENFILE
|
|
|
|
The system limit on the total number of open files has been reached.
|
|
|
|
.TP
|
|
|
|
.B EOPNOTSUPP
|
|
|
|
The specified protocol does not support creation of socket pairs.
|
|
|
|
.TP
|
|
|
|
.B EPROTONOSUPPORT
|
|
|
|
The specified protocol is not supported on this machine.
|
|
|
|
.SH "CONFORMING TO"
|
2006-08-03 13:57:17 +00:00
|
|
|
4.4BSD, POSIX.1-2001.
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR socketpair ()
|
2007-04-24 16:44:51 +00:00
|
|
|
function call appeared in 4.2BSD.
|
|
|
|
It is generally portable to/from
|
2004-11-03 13:51:07 +00:00
|
|
|
non-BSD systems supporting clones of the BSD socket layer (including
|
|
|
|
System V variants).
|
|
|
|
.SH NOTES
|
2007-04-12 22:42:49 +00:00
|
|
|
On Linux, the only supported domain for this call is
|
2007-09-20 16:26:31 +00:00
|
|
|
.B AF_UNIX
|
2004-11-03 13:51:07 +00:00
|
|
|
(or synonymously,
|
|
|
|
.BR AF_LOCAL ).
|
|
|
|
(Most implementations have the same restriction.)
|
2007-06-10 18:08:27 +00:00
|
|
|
|
2008-10-11 05:47:36 +00:00
|
|
|
Since Linux 2.6.27,
|
|
|
|
.BR socketpair ()
|
|
|
|
supports the
|
|
|
|
.BR SOCK_NONBLOCK
|
|
|
|
and
|
|
|
|
.BR SOCK_CLOEXEC
|
|
|
|
flags described in
|
|
|
|
.BR socket (2).
|
|
|
|
|
2007-06-10 18:08:27 +00:00
|
|
|
POSIX.1-2001 does not require the inclusion of
|
|
|
|
.IR <sys/types.h> ,
|
|
|
|
and this header file is not required on Linux.
|
|
|
|
However, some historical (BSD) implementations required this header
|
|
|
|
file, and portable applications are probably wise to include it.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR pipe (2),
|
|
|
|
.BR read (2),
|
|
|
|
.BR socket (2),
|
|
|
|
.BR write (2),
|
2008-12-01 15:26:37 +00:00
|
|
|
.BR socket (7),
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR unix (7)
|