Seth Woolley's Man Viewer

Manual for bind - man 2 bind

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

BIND(2)                    Linux Programmer's Manual                   BIND(2)

       bind(2,n,1 builtins) - bind(2,n,1 builtins) a name to a socket(2,7,n)

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

       int bind(2,n,1 builtins)(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);

       bind(2,n,1 builtins)  gives  the  socket(2,7,n)  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(2,7,n) is created with socket(2,7,n)(2), it exists in(1,8) a
       name space (address family) but has no name assigned.

       It is normally necessary to assign a local address using bind(2,n,1 builtins) before  a
       SOCK_STREAM socket(2,7,n) may receive connections (see accept(2,8)(2)).

       The  rules used in(1,8) name binding vary between address families.  Consult
       the manual entries in(1,8) Section 7 for detailed information.  For  AF_INET
       see  ip(7,8)(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

       On  success,  zero is returned.  On error(8,n), -1 is returned, and errno is
       set(7,n,1 builtins) appropriately.

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

       EBADF  sockfd is not a valid descriptor.

       EINVAL The socket(2,7,n) is already bound to an address.  This may  change  in(1,8)
              the future: see linux/unix/sock.c for details.

              Argument is a descriptor for a file(1,n), not a socket.

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

       EACCES Search  permission  is denied on a component of the path prefix.
              (See also path_resolution(2).)

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

       EINVAL The addrlen is wrong, or the socket(2,7,n) was not in(1,8) the AF_UNIX  fam-

       ELOOP  Too many symbolic links were encountered in(1,8) resolving my_addr.

              my_addr is too long.

       ENOENT The file(1,n) does not exist.

       ENOMEM Insufficient kernel memory was available.

              A component of the path prefix is not a directory.

       EROFS  The socket(2,7,n) inode would reside on a read-only file(1,n) system.

       The transparent proxy options are not described.

       SVr4, 4.4BSD (the bind(2,n,1 builtins) function first appeared in(1,8) BSD 4.2).  SVr4 docu-
       ments additional EADDRNOTAVAIL, EADDRINUSE,  and  ENOSR  general  error(8,n)
       conditions, and additional EIO and EISDIR Unix-domain error(8,n) conditions.

       The third argument of bind(2,n,1 builtins) is in(1,8) reality an int (and this is  what  BSD
       4.*  and  libc4  and libc5 have).  Some POSIX confusion resulted in(1,8) the
       present socklen_t, also used by glibc.  See also accept(2,8)(2).

       accept(2,8)(2), connect(2), getsockname(2),  listen(1,2,7)(2),  path_resolution(2),
       socket(2,7,n)(2), ip(7,8)(7), socket(2,7,n)(7)

Linux 2.6.7                       2004-06-23                           BIND(2)

References for this manual (incoming links)