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.
Up until QNX Neutrino 6.4.0, a value of 0 was accepted and assumed to be
this value.
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 |
Yes |
Thread |
Yes |