bind(2)





NAME

       bind - bind a name to a socket


SYNOPSIS

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

       int  bind(int  sockfd, struct sockaddr *my_addr, socklen_t
       addrlen);


DESCRIPTION

       bind gives the socket sockfd the  local  address  my_addr.
       my_addr  is  addrlen  bytes  long.  Traditionally, this is
       called "assigning a name to a socket."  When a  socket  is
       created with socket(2), it exists in a name space (address
       family) but has no name assigned.

       It is normally necessary to assign a local  address  using
       bind  before  a SOCK_STREAM socket may receive connections
       (see accept(2)).


NOTES

       The rules used in name binding vary between address  fami­
       lies.   Consult  the  manual  entries  in  Section  7  for
       detailed information. For AF_INET see ip(7),  for  AF_UNIX
       see  unix(7),  for  AF_APPLETALK see ddp(7), for AF_PACKET
       see packet(7), for AF_X25 see x25(7)  and  for  AF_NETLINK
       see netlink(7).



RETURN VALUE

       On  success,  zero is returned.  On error, -1 is returned,
       and errno is set appropriately.


ERRORS

       EBADF  sockfd is not a valid descriptor.

       EINVAL The socket is already bound to  an  address.   This
              may change in the future: see linux/unix/sock.c for
              details.

       EACCES The address is protected, and the user is  not  the
              super-user.

       ENOTSOCK
              Argument  is a descriptor for a file, not a socket.

       The following errors are specific to UNIX domain (AF_UNIX)
       sockets:

       EINVAL The  addrlen is wrong, or the socket was not in the
              AF_UNIX family.

       EROFS  The socket inode would reside on a  read-only  file



              system.

       EFAULT my_addr   points   outside  the  user's  accessible
              address space.

       ENAMETOOLONG
              my_addr is too long.

       ENOENT The file does not exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR
              A component of the path prefix is not a  directory.

       EACCES Search  permission  is denied on a component of the
              path prefix.

       ELOOP  Too many symbolic links were encountered in resolv­
              ing my_addr.


BUGS

       The transparent proxy options are not described.


CONFORMING TO

       SVr4,  4.4BSD  (the  bind  function  first appeared in BSD
       4.2).  SVr4 documents  additional  EADDRNOTAVAIL,  EADDRI­
       NUSE,  and  ENOSR general error conditions, and additional
       EIO, EISDIR and EROFS Unix-domain error conditions.


NOTE

       The third argument of bind is in reality an int (and  this
       is  what  BSD  4.*  and libc4 and libc5 have).  Some POSIX
       confusion resulted in the present  socklen_t.   The  draft
       standard has not been adopted yet, but glibc2 already fol­
       lows it and also has socklen_t. See also accept(2).


SEE ALSO

       accept(2),  connect(2),  listen(2),  socket(2),   getsock­
       name(2), ip(7), socket(7)

















Man(1) output converted with man2html