BIND(2) | System Calls Manual | BIND(2) |
bind
— bind a name
to a socket
#include
<sys/socket.h>
int
bind
(int socket,
const struct sockaddr *address,
socklen_t address_len);
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
address be assigned to the socket.
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.
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and the global integer variable errno is set to indicate the error.
The bind
() system call will fail if:
EACCES
]EADDRINUSE
]EADDRNOTAVAIL
]EAFNOSUPPORT
]EBADF
]EDESTADDRREQ
]EFAULT
]EINVAL
]ENOTSOCK
]EOPNOTSUPP
]The following errors are specific to binding names in the UNIX domain.
EACCES
]EEXIST
]EIO
]EISDIR
]ELOOP
]ENAMETOOLONG
]{NAME_MAX}
characters, or an entire path name exceeded
{PATH_MAX}
characters.ENOENT
]ENOTDIR
]EROFS
]#include
<sys/types.h>
#include
<sys/socket.h>
The include file
<sys/types.h>
is
necessary.
connect(2), connectx(2), getsockname(2), listen(2), socket(2), compat(5)
The bind
() function call appeared in
4.2BSD.
March 18, 2015 | BSD 4.2 |