*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> bind (2)              
Title
Content
Arch
Section
 

BIND(2)

Contents


NAME    [Toc]    [Back]

       bind - bind a name to a socket

SYNOPSIS    [Toc]    [Back]

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

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

DESCRIPTION    [Toc]    [Back]

       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    [Toc]    [Back]

       The  rules used in name binding vary between address families.  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    [Toc]    [Back]

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

ERRORS    [Toc]    [Back]

       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    [Toc]    [Back]
	      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    [Toc]    [Back]
	      my_addr is too long.

       ENOENT The file does not exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR    [Toc]    [Back]
	      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 resolving my_addr.

BUGS    [Toc]    [Back]

       The transparent proxy options are not described.

CONFORMING TO    [Toc]    [Back]

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

NOTE    [Toc]    [Back]

       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 follows it and also has socklen_t. See also accept(2).

SEE ALSO    [Toc]    [Back]

      
      
       accept(2), connect(2),  listen(2),  socket(2),  getsockname(2),	ip(7),
       socket(7)



Linux 2.2			  1998-10-03			       BIND(2)
[ Back ]
 Similar pages
Name OS Title
bind HP-UX bind an address to a socket
cap_bind IRIX bind a privileged name to a socket
bindresvport Linux bind a socket to a privileged IP port
bindresvport_sa FreeBSD bind a socket to a privileged IP port
bindresvport NetBSD bind a socket to a privileged IP port
bindresvport_sa OpenBSD bind a socket to a privileged IP port
bindresvport OpenBSD bind a socket to a privileged IP port
bindresvport FreeBSD bind a socket to a privileged IP port
bindresvport Tru64 Bind a socket to a privileged IP port
bindresvport_sa NetBSD bind a socket to a privileged IP port
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service