Library /sys$common/syshlp/HELPLIB.HLB  —  TCPIP Services, Programming Interfaces, Socket API Functions, socketpair()
    Creates a pair of connected sockets.
    Format
      #include  <sys/socket.h>
      int socketpair  (int domain, int type, int protocol, int
                      socket_vector[2]);

1  –  Arguments

 af
    The address family in which the sockets are to be created. Use
    one of the following:
    o  AF_INET for the IPv4 address family
    o  AF_INET6 for the IPv6 address family
    o  TCPIP$C_AUXS or a network application server with the LISTEN
       flag enabled. Specify the TCPIP$C_AUXS address family to
       obtain the connected device socket created by the auxiliary
       server in response to incoming network traffic.
 type
    Specifies the type of sockets to be created. The socket types
    are:
    o  SOCK_STREAM - Provides sequenced, reliable, two-way,
       connection-based byte streams with an available out-of-band
       data transmission mechanism.
    o  SOCK_DGRAM - Supports datagrams (connectionless, unreliable
       data transmission mechanism).
    o  SOCK_SEQPACKET - Provides sequenced, reliable, bidirectional,
       connection-mode transmission paths for records. A record can
       be sent using one or more output operations and received using
       one or more input operations, but a single operation never
       transfers part of more than one record.
       Use the MSG_EOR flag to determine the record boundaries.
 protocol
    The protocol to be used with the socket. Normally, only a single
    protocol exists to support a particular socket type using a given
    address format. However, if many protocols exist, a particular
    protocol must be specified with this argument. Use the protocol
    number that is specific to the address family.
    If the protocol argument is 0, the function uses the default
    protocol for the specified socket type.
    If the protocol argument is non-zero, the function uses the
    default protocol for the address family.
 socket_vector
    A 2-integer array to hold the file descriptors of the created
    socket pair.

2  –  Description

    This function creates an unbound pair of connected sockets in a
    specified address family, of a specified type, under the protocol
    optionally specified by the protocol argument. The two sockets
    will be identical. The file descriptors used in referencing the
    created sockets are returned in socket_vector[0] and socket_
    vector[1].
    Appropriate privileges are required to use the socketpair()
    function or to create some sockets.
    Related Functions
    See also socket().

3  –  Return Values

    0                  Successful completion
    -1                 Error; errno is set to indicate the error.

4  –  Errors

    EACCES             The process does not have sufficient
                       privileges.
    EAFNOSUPPORT       The specified address family is not supported
                       in this version of the system.
    EMFILE             The per-process descriptor table is full.
    ENETDOWN           TCP/IP Services was not started.
    ENFILE             No more file descriptors are available for the
                       system.
    ENOBUFS            The system has insufficient resources to
                       complete the call.
    ENOMEM             The system was unable to allocate kernel
                       memory to increase the process descriptor
                       table.
    EPERM              The process is attempting to open a raw socket
                       and does not have SYSTEM privilege.
    EPROTONOSUPPORT    The socket in the specified address family is
                       not supported.
    EPROTOTYPE         The socket type is not supported by the
                       protocol.
    ESOCKTNOSUPPORT    The specified socket type is not supported in
                       this address family.
Close Help