unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

SOCKETPAIR(2)               BSD System Calls Manual              SOCKETPAIR(2)

NAME
     socketpair -- create a pair of connected sockets

SYNOPSIS
     #include <&lt;sys/socket.h>&gt;

     int
     socketpair(int d, int type, int protocol, int sv[2]);

DESCRIPTION
     The socketpair() call creates an unnamed pair of connected sockets in the
     specified domain d, of the specified type, and using the optionally spec-
     ified protocol.  The descriptors used in referencing the new sockets are
     returned in sv[0] and sv[1].  The two sockets are indistinguishable.

     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'').

HISTORY
     The socketpair() function call appeared in 4.2BSD.

BUGS
     This call is currently implemented only for the LOCAL domain.  Many oper-
     ating systems only accept a protocol of PF_UNSPEC, so that should be used
     instead of PF_LOCAL for maximal portability.

BSD                             March 28, 2017                             BSD