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
It is normally necessary to assign a local address using bind before a
SOCK_STREAM socket may receive connections (see accept(2)).
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
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.