bind()
Bind a name to a socket
Synopsis:
#include <sys/types.h> #include <sys/socket.h> int bind( int s, const struct sockaddr * name, socklen_t namelen );
Arguments:
- s
- The file descriptor to be bound.
- name
- A pointer to the sockaddr structure that holds the address to be bound to the socket. The socket length and format depend upon its address family.
- namelen
- The length of the sockaddr structure pointed to by name.
Library:
libsocket
Use the -l socket option to qcc to link against this library.
Description:
When a socket is created with socket() , it exists in a namespace (address family) but has no name assigned to it. The bind() function assigns a name to that unnamed socket.
The bind() function assigns a local address. Use
connect()
to assign a remote address.
The rules used for binding names vary between communication domains.
Before calling bind() on an AF_INET socket,
set the af_family member of the sockaddr
structure to AF_INET.
Returns:
- 0
- Success.
- -1
- An error occurred (errno is set).
Errors:
- EACCES
- The requested address is protected, and the current user has inadequate permission to access it.
- EADDRINUSE
- The specified address is already in use.
- EADDRNOTAVAIL
- The specified address isn't available from the local machine.
- EBADF
- Invalid descriptor s.
- EFAULT
- The name parameter isn't in a valid part of the user address space.
- EINVAL
- The socket is already bound to an address.
- ENOTSOCK
- The given file descriptor isn't for a socket.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |