socketpair - Online Manual Page Of Unix/Linux

  Command: man perldoc info search(apropos)

WebSearch:
Our Recommended Sites:
  • Printer Ink
Full-Featured Editor
 

SOCKETPAIR(P)                                                                       SOCKETPAIR(P)



NAME
       socketpair - create a pair of connected sockets

SYNOPSIS
       #include <sys/socket.h>

       int socketpair(int domain, int type, int protocol,
              int socket_vector[2]);


DESCRIPTION
       The socketpair() function shall create an unbound pair of connected sockets in a specified
       domain, of a specified type, under the protocol optionally specified by the protocol argu-
       ment.  The  two  sockets  shall be identical. The file descriptors used in referencing the
       created sockets shall be returned in socket_vector[0] and socket_vector[1].

       The socketpair() function takes the following arguments:

       domain Specifies the communications domain in which the sockets are to be created.

       type   Specifies the type of sockets to be created.

       protocol
              Specifies a particular protocol to be used with the sockets. Specifying a  protocol
              of 0 causes socketpair() to use an unspecified default protocol appropriate for the
              requested socket type.

       socket_vector
              Specifies a 2-integer array to hold the file  descriptors  of  the  created  socket
              pair.


       The  type argument specifies the socket type, which determines the semantics of communica-
       tions over the socket. The following socket types are defined; implementations may specify
       additional socket types:

       SOCK_STREAM
              Provides  sequenced, reliable, bidirectional, connection-mode byte streams, and may
              provide a transmission mechanism for out-of-band data.

       SOCK_DGRAM
              Provides datagrams, which are connectionless-mode,  unreliable  messages  of  fixed
              maximum length.

       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. Record boundaries are visible to the receiver via the MSG_EOR
              flag.


       If the protocol argument is non-zero, it shall specify a protocol that is supported by the
       address family. If the protocol argument is zero, the default protocol  for  this  address
       family  and  type shall be used. The protocols supported by the system are implementation-
       defined.

       The process may need to have appropriate privileges to use the socketpair() function or to
       create some sockets.

RETURN VALUE
       Upon  successful completion, this function shall return 0; otherwise, -1 shall be returned
       and errno set to indicate the error.

ERRORS
       The socketpair() function shall fail if:

       EAFNOSUPPORT

              The implementation does not support the specified address family.

       EMFILE No more file descriptors are available for this process.

       ENFILE No more file descriptors are available for the system.

       EOPNOTSUPP
              The specified protocol does not permit creation of socket pairs.

       EPROTONOSUPPORT

              The protocol is not supported by the address family, or the protocol  is  not  sup-
              ported by the implementation.

       EPROTOTYPE
              The socket type is not supported by the protocol.


       The socketpair() function may fail if:

       EACCES The process does not have appropriate privileges.

       ENOBUFS
              Insufficient resources were available in the system to perform the operation.

       ENOMEM Insufficient memory was available to fulfill the request.


       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       The  documentation  for  specific  address families specifies which protocols each address
       family supports. The documentation for specific protocols  specifies  which  socket  types
       each protocol supports.

       The  socketpair() function is used primarily with UNIX domain sockets and need not be sup-
       ported for other domains.

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       socket() , the Base Definitions volume of IEEE Std 1003.1-2001, <sys/socket.h>

COPYRIGHT
       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .



POSIX                                          2003                                 SOCKETPAIR(P)