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.
Note:
The
bind() function assigns a local address. Use
connect()
to assign a remote address.
The rules used for binding names vary between communication domains.
Note:
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:
POSIX 1003.1
| Safety: |
|
| Cancellation point |
No |
| Interrupt handler |
No |
| Signal handler |
No |
| Thread |
Yes |