Setting the Address of a Socket
-------------------------------
Use the `bind' function to assign an address to a socket. The
prototype for `bind' is in the header file `sys/socket.h'. For
examples of use, see Note:Local Socket Example, or see Note:Inet
Example.
- Function: int bind (int SOCKET, struct sockaddr *ADDR, socklen_t
LENGTH)
The `bind' function assigns an address to the socket SOCKET. The
ADDR and LENGTH arguments specify the address; the detailed format
of the address depends on the namespace. The first part of the
address is always the format designator, which specifies a
namespace, and says that the address is in the format of that
namespace.
The return value is `0' on success and `-1' on failure. The
following `errno' error conditions are defined for this function:
`EBADF'
The SOCKET argument is not a valid file descriptor.
`ENOTSOCK'
The descriptor SOCKET is not a socket.
`EADDRNOTAVAIL'
The specified address is not available on this machine.
`EADDRINUSE'
Some other socket is already using the specified address.
`EINVAL'
The socket SOCKET already has an address.
`EACCES'
You do not have permission to access the requested address.
(In the Internet domain, only the super-user is allowed to
specify a port number in the range 0 through
`IPPORT_RESERVED' minus one; see Note:Ports.)
Additional conditions may be possible depending on the particular
namespace of the socket.