SOCKETPAIR(2) manual page
Table of Contents
socketpair - create a pair
of connected sockets
#include <sys/types.h> /* See NOTES
*/
#include <sys/socket.h>
int socketpair(int domain, int type, int protocolint
" sv [2]);
The socketpair() call creates an unnamed pair of
connected sockets in the specified domain, of the specified type, and using
the optionally specified protocol. For further details of these arguments,
see socket(2)
.
The descriptors used in referencing the new sockets are
returned in sv[0] and sv[1]. The two sockets are indistinguishable.
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
- EAFNOSUPPORT
- The specified address family is not
supported on this machine.
- EFAULT
- The address sv does not specify a valid
part of the process address space.
- EMFILE
- Too many descriptors are in use
by this process.
- ENFILE
- The system limit on the total number of open files
has been reached.
- EOPNOTSUPP
- The specified protocol does not support creation
of socket pairs.
- EPROTONOSUPPORT
- The specified protocol is not supported
on this machine.
4.4BSD, POSIX.1-2001. The socketpair() function
call appeared in 4.2BSD. It is generally portable to/from non-BSD systems
supporting clones of the BSD socket layer (including System V variants).
On Linux, the only supported domain for this call is AF_UNIX (or synonymously,
AF_LOCAL). (Most implementations have the same restriction.)
Since Linux
2.6.27, socketpair() supports the SOCK_NONBLOCK and SOCK_CLOEXEC flags described
in socket(2)
.
POSIX.1-2001 does not require the inclusion of <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.
pipe(2)
, read(2)
, socket(2)
, write(2)
,
socket(7)
, unix(7)
This page is part of release 3.78 of the Linux
man-pages project. A description of the project, information about reporting
bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.
Table of Contents