bind - Binds a name to a socket
int bind (
const struct sockaddr *address,
size_t address_len );
[POSIX] The definition of the bind() function in POSIX.1g Draft 6.6 uses a socklen_t data type instead of a size_t data type as specified in XNS4.0 (the previous definition).
[DIGITAL] The following definition of the bind() function does not conform to current standards and is supported only for backward compatibility (see standards(5)):
int bind (
struct sockaddr *address,
int address_len );
Interfaces documented on this reference page conform to industry standards as follows:
The bind function also supports POSIX.1g Draft 6.6.
Refer to the standards(5) reference page for more information about industry standards and associated tags.
Specifies the file descriptor of the socket to be bound. Points to a sockaddr structure, the format of which is determined by the domain and by the behavior requested for the socket. The sockaddr structure is an overlay for a sockaddr_in or sockaddr_un structure, depending on which of the supported address families is active.
If _SOCKADDR_LEN is defined, the 4.3BSD sockaddr structure is defined with the name osockaddr. Specifies the length of the sockaddr structure pointed to by the address parameter.
The bind() function assigns an address to an unnamed socket. Sockets created with the socket() function are unnamed; they are identified only by their address family.
A bind that references a UNIX domain socket (AF_UNIX) causes a socket file to be created in the filesystem. By default, the sockets are created, like regular files and directories, with the following mode set: 0777 &~ umask
If the insecure_bind kernel tuning parameter is set to a value other than zero (0), umask is ignored and new UNIX domain sockets are created with mode 0777 only. The insecure_bind parameter can be set either in the generic stanza of the /etc/sysconfigtab file or by using the /sbin/sysconfig utility. See System Configuration and Tuning for more information on tuning parameters.
An application program can retrieve the assigned socket name with the getsockname() function.
[DIGITAL] If you have enhanced security installed on your system, the bind() function operates as follows:
A bind that references a UNIX domain socket causes a socket file to be created in the filesystem. The access checks that are made are identical to those made by the open() function when creating a new file.
Upon successful completion, the bind() function returns a value of 0 (zero). If the bind() function fails, a value of -1 is returned and errno is set to indicate the error.
If the bind() function fails, errno may be set to one of the following values: The requested address is protected and the current user does not have permission to access it. The specified address is already in use. The specified address is not available from the local machine. The specified address is protected and the current user does not support binding to a new address; or the socket has been shut down, The socket parameter is not valid. The address argument is a null pointer. The address parameter is not in a readable part of the user address space. The socket is already bound to an address. An I/O error occurred. The address argument is a null pointer. Too many symbolic links were encountered in translating the pathname in address. A component of the pathname exceeded NAME_MAX characters, or an entire pathname exceeded PATH_MAX characters. [POSIX] Insufficient resources are available in the system to complete the call. A component of the pathname does not name an existing file or the pathname is an empty string. A component of the path prefix of the pathname in address is not a directory. The socket parameter refers to a file, not a socket. The socket type of the specified socket does not support binding to an address. The name would reside on a read-only filesystem.
Functions: connect(2), listen(2), socket(2), getsockname(2)
System Configuration and Tuning delim off