bind() system call



bind(2)                                                               bind(2)



NAME

  bind - Binds a name to a socket

SYNOPSIS

  #include <sys/types.h>

  #include <sys/socket.h>

  int bind (
          int socket,
          struct sockaddr *address,
          int address_len );

PARAMETERS

  socket    Specifies the socket descriptor of the socket to be bound.

  address   Points to a sockaddr structure, the format of which is determined
            by the domain and by the behavior requested for the socket.  The
            sockaddr structure is an overlay for a sockaddr_in, sockaddr_un,
            or sockaddr_ns structure, depending on which of the supported
            address families is active.

            If the compile-time option _SOCKADDR_LEN is defined before the
            sys/socket.h header file is included, the sockaddr structure
            takes 4.4BSD behavior, with a field for specifying the length of
            the socket address.  Otherwise, the default 4.3BSD sockaddr
            structure is used, with the length of the socket address assumed
            to be 14 bytes or less.

            If _SOCKADDR_LEN is defined, the 4.3BSD sockaddr structure is
            defined with the name osockaddr.

  address_len
            Specifies the length of the sockaddr structure pointed to by the
            address parameter.

DESCRIPTION

  The bind() function assigns an address to an unnamed socket.  Sockets
  created with the socket() function are unnamed; they are identified only by
  their address family.

  An application program can retrieve the assigned socket name with the get-
  sockname() function.

                                 Security Note
       If you have enhanced security installed on your system, the bind()
       function operates as follows:

       A bind that references a UNIX domain socket causes a socket file to be
       created in the filesystem.  The access checks that are made are ident-
       ical to those made by the open() function when creating a new file.

                                 End Security Note




RETURN VALUES

  Upon successful completion, the bind() function returns a value of 0
  (zero).  If the bind() function fails, a value of -1 is returned and errno
  is set to indicate the error.

ERRORS

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

  [EBADF]   The socket parameter is not valid.

  [ENOTSOCK]
            The socket parameter refers to a file, not a socket.

  [EADDRNOTAVAIL]
            The specified address is not available from the local machine.

  [EADDRINUSE]
            The specified address is already in use.

  [EINVAL]  The socket is already bound to an address.

  [EACCES]  The requested address is protected and the current user does not
            have permission to access it.

  [EFAULT]  The address parameter is not in a readable part of the user
            address space.

  [EACCES]  When using bind() in the UNIX domain, the calling process does
            not have write permission to the parent directory of the file.

RELATED INFORMATION

  Functions: connect(2), listen(2), socket(2), getsockname(2) delim off