socketpair

SOCKETPAIR(2)                 System Calls Manual                SOCKETPAIR(2)

NAME
     socketpair - create a pair of connected sockets

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>

     int
     socketpair(int d, int type, int protocol, int *sv);

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.

RETURN VALUES
     A 0 is returned if the call succeeds, -1 if it fails.

ERRORS
     The call succeeds unless:

     [EMFILE]           Too many descriptors are in use by this process.

     [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.

     [EFAULT]           The address sv does not specify a valid part of the
                        process address space.

     [ENFILE]           The system file table is full.

SEE ALSO
     pipe(2), read(2), write(2)

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.

STANDARDS
     The socketpair() function conforms to X/Open Portability Guide Issue 4.2
     (``XPG4.2'').

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

BSD                              June 4, 1993                              BSD