Manual Page Result
0
Command: socketpair | Section: 2 | Source: OpenBSD | File: socketpair.2
SOCKETPAIR(2) FreeBSD System Calls Manual SOCKETPAIR(2)
NAME
socketpair - create a pair of connected sockets
SYNOPSIS
#include <sys/socket.h>
int
socketpair(int domain, int type, int protocol, int sv[2]);
DESCRIPTION
The socketpair() call creates an unnamed pair of connected sockets. The
descriptors used in referencing the new sockets are returned in sv[0] and
sv[1]. The two sockets are indistinguishable.
The only supported domain is AF_UNIX. Possible values for the type and
protocol arguments are explained in the socket(2) manual page. The only
useful value for protocol is 0, which will let the system select an
appropriate protocol for the requested socket type.
Any combination of the following flags may additionally be used in the
type argument:
SOCK_CLOEXEC Set close-on-exec flag on both the new descriptors.
SOCK_NONBLOCK Set non-blocking I/O mode on both the new sockets.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.
ERRORS
The call succeeds unless:
[EAFNOSUPPORT] The specified address family is not supported on this
machine.
[EPROTONOSUPPORT] The specified protocol is not supported on this
machine.
[EOPNOTSUPP] The specified protocol does not support creation of
socket pairs.
[EPROTOTYPE] The combination of the specified protocol and type is
not supported.
[EMFILE] The per-process descriptor table is full.
[ENFILE] The system file table is full.
[ENOBUFS] Insufficient resources were available in the system to
perform the operation.
[EFAULT] The address sv does not specify a valid part of the
process address space.
SEE ALSO
pipe(2), read(2), socket(2), write(2)
STANDARDS
The socketpair() function conforms to IEEE Std 1003.1-2008 ("POSIX.1").
The SOCK_CLOEXEC and SOCK_NONBLOCK flags are expected to conform to a
future revision of that standard.
HISTORY
The socketpair() function call appeared in 4.2BSD. Support for the
SOCK_CLOEXEC and SOCK_NONBLOCK flags appeared in OpenBSD 5.7.
FreeBSD 14.1-RELEASE-p8 April 8, 2018 FreeBSD 14.1-RELEASE-p8