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

  man pages->OpenBSD 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 s, const struct sockaddr *name, socklen_t namelen);

DESCRIPTION    [Toc]    [Back]

     bind()  assigns  a name to an unnamed socket.  When a socket
is created
     with socket(2) it exists in a name  space  (address  family)
but has no name
     assigned.   bind()  requests  that  name  be assigned to the
socket.  namelen
     indicates the amount of space pointed to by name, in  bytes.

NOTES    [Toc]    [Back]

     Binding  a  name  in the UNIX domain creates a socket in the
file system
     that must be deleted by the caller  when  it  is  no  longer
needed (using
     unlink(2)).

     The  rules  used  in name binding vary between communication
domains.  Consult
 the manual entries in section 4 for  detailed  information.

RETURN VALUES    [Toc]    [Back]

     If  the bind is successful, a 0 value is returned.  A return
value of -1
     indicates an error, which is further specified in the global
errno.

ERRORS    [Toc]    [Back]

     The bind() call will fail if:

     [EBADF]       S is not a valid descriptor.

     [ENOTSOCK]    S is 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.

     [EINVAL]      The family of the socket and that requested in
                   name->sa_family are not equivalent.

     [EACCES]       The  requested  address is protected, and the
current user
                   has inadequate permission to access it.

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

     The  following  errors  are specific to binding names in the
UNIX domain.

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

     [ENAMETOOLONG]
                   A  component of a pathname exceeded {NAME_MAX}
characters,
                   or an entire  path  name  exceeded  {PATH_MAX}
characters.

     [ENOENT]       A  prefix component of the path name does not
exist.

     [ELOOP]       Too many symbolic links  were  encountered  in
translating the
                   pathname.

     [EIO]          An I/O error occurred while making the directory entry or
                   allocating the inode.

     [EROFS]       The name would reside on a read-only file system.

     [EISDIR]      An empty pathname was specified.

SEE ALSO    [Toc]    [Back]

      
      
     connect(2), getsockname(2), listen(2), socket(2)

HISTORY    [Toc]    [Back]

     The bind() function call appeared in 4.2BSD.

OpenBSD      3.6                        February     15,     1999
[ 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