BIND(3SOCKET) | Sockets Library Functions | BIND(3SOCKET) |
bind - bind a name to a socket
cc [ flag ... ] file ... -lsocket -lnsl [ library ... ] #include <sys/types.h> #include <sys/socket.h> int bind(int s, const struct sockaddr *name, int namelen);
The bind() function assigns a name to an unnamed socket. When a socket is created with socket(3SOCKET), it exists in a name space (address family) but has no name assigned. The bind() function requests that the name pointed to by name be assigned to the socket.
Upon successful completion 0 is returned. Otherwise, −1 is returned and errno is set to indicate the error.
The bind() function will fail if:
EACCES
EADDRINUSE
EADDRNOTAVAIL
EBADF
EINVAL
The socket is already bound to an address.
Socket options are inconsistent with port attributes.
ENOSR
ENOTSOCK
The following errors are specific to binding names in the UNIX domain:
EACCES
EIO
EISDIR
ELOOP
ENOENT
ENOTDIR
EROFS
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
MT-Level | Safe |
unlink(2), socket.h(3HEAD), sockaddr(3SOCKET), socket(3SOCKET), attributes(7), privileges(7)
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 by using unlink(2).
The rules used in name binding vary between communication domains.
May 11, 2009 | OmniOS |