4.3BSD-UWisc/man/cat2/bind.2
BIND(2) UNIX Programmer's Manual BIND(2)
NAME
bind - bind a name to a socket
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
bind(s, name, namelen)
int s;
struct sockaddr *name;
int namelen;
DESCRIPTION
_B_i_n_d assigns a name to an unnamed socket. When a socket is
created with _s_o_c_k_e_t(2) it exists in a name space (address
family) but has no name assigned. _B_i_n_d requests that _n_a_m_e
be assigned to the socket.
NOTES
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 _u_n_l_i_n_k(2)).
The rules used in name binding vary between communication
domains. Consult the manual entries in section 4 for
detailed information.
RETURN VALUE
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 _e_r_r_n_o.
ERRORS
The _b_i_n_d 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.
[EACCES] The requested address is protected, and
the current user has inadequate permis-
sion to access it.
[EFAULT] The _n_a_m_e parameter is not in a valid
Printed 12/27/86 May 22, 1986 1
BIND(2) UNIX Programmer's Manual BIND(2)
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.
[EINVAL] The pathname contains a character with the
high-order bit set.
[ENAMETOOLONG] A component of a pathname exceeded 255 char-
acters, or an entire path name exceeded 1023
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 direc-
tory entry or allocating the inode.
[EROFS] The name would reside on a read-only file
system.
[EISDIR] A null pathname was specified.
SEE ALSO
connect(2), listen(2), socket(2), getsockname(2)
Printed 12/27/86 May 22, 1986 2