socket() system call


socket(2)                                                           socket(2)



NAME
  socket - Creates an end point for communication and returns a descriptor

SYNOPSIS

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

  int socket  (
          int addr_family,
          int type,
          int protocol );

PARAMETERS

  addr_family
            Specifies an address family with which addresses specified in
            later socket operations should be interpreted.  The sys/socket.h
            file contains the definitions of the address families.  Commonly
            used families are:

            AF_UNIX   UNIX pathnames

            AF_INET   ARPA Internet addresses

            AF_NS     Xerox Network Software addresses

  type      Specifies the semantics of communication. The sys/socket.h file
            defines the socket types.  The following types are supported:

            SOCK_STREAM
                      Provides sequenced, reliable, two-way byte streams with
                      a transmission mechanism for out-of-band data.

            SOCK_DGRAM
                      Provides datagrams, which are connectionless messages
                      of a fixed maximum length.

            SOCK_RAW  Provides access to internal network protocols and
                      interfaces. This type of socket is available only to a
                      process with superuser privilege.

  protocol  Specifies a particular protocol to be used with the socket.
            Specifying a protocol of 0 (zero) causes the socket() function to
            default to the typical protocol for the requested type of
            returned socket.

DESCRIPTION

  The socket() function creates a socket of the specified type in the speci-
  fied addr_family.

  The socket() function returns a descriptor (an integer) that can be used in
  later system calls that operate on sockets.

  Socket level options control socket operations. The getsockopt() and set-
  sockopt() functions are used to get and set these options, which are
  defined in the sys/socket.h file.


RETURN VALUES

  Upon successful completion, the socket() function returns a nonnegative
  integer (the socket descriptor).  Otherwise, a value of -1 is returned and
  errno is set to indicate the error.

ERRORS

  If the socket() function fails, errno may be set to one of the following
  values:

  [EAFNOSUPPORT]
            The addresses in the specified address family are not available
            in the kernel.

  [EPROTONOSUPPORT]
            The socket in the specified address family is not supported.

  [EMFILE]  The per-process descriptor table is full.

  [ENOBUFS] Insufficient resources were available in the system 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
            superuser privilege.

RELATED INFORMATION

  Functions: accept(2), bind(2), connect(2), listen(2), getsockname(2), get-
  sockopt(2), recv(2), recvfrom(2), recvmsg(2), send(2), sendto(2),
  sendmsg(2), setsockopt(2), shutdown(2), socketpair(2) delim off