 |
Index for Section 2 |
|
 |
Alphabetical listing for B |
|
 |
Bottom of page |
|
bind(2)
NAME
bind - Binds a name to a socket
SYNOPSIS
#include <sys/socket.h>
int bind (
int socket,
const struct sockaddr *address,
size_t address_len );
[Tru64 UNIX] 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 (
int socket,
struct sockaddr *address,
int address_len );
STANDARDS
Interfaces documented on this reference page conform to industry standards
as follows:
bind(): XNS4.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
socket Specifies the socket descriptor of the socket to be bound.
address 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, sockaddr_un,
or sockaddr_ns structure, depending on which of the supported
address families is active.
[Tru64 UNIX] If the compile-time option _SOCKADDR_LEN is defined
before the sys/socket.h header file is included, the sockaddr
structure takes 4.4BSD behavior, with a field for specifying the
length of the socket address. Otherwise, the default 4.3BSD
sockaddr structure is used, with the length of the socket address
assumed to be 14 bytes or less.
If _SOCKADDR_LEN is defined, the 4.3BSD sockaddr structure is
defined with the name osockaddr.
address_len
Specifies the length of the sockaddr structure pointed to by the
address parameter.
DESCRIPTION
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 by using either the
dxkerneltuner utility or the /sbin/sysconfigdb 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.
Security Note
[Tru64 UNIX] 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.
End Security Note
RETURN VALUES
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.
ERRORS
If the bind() function fails, errno may be set to one of the following
values:
[EACCES] The requested address is protected and the current user does not
have permission to access it.
For an AF_UNIX socket, a component of the path prefix is
protected and you cannot search it, or the requested name
requires writing in a directory with a mode that denies write
permission.
[EADDRINUSE]
The specified address is already in use.
[EADDRNOTAVAIL]
The specified address is not available from the local machine.
[EAFNOSUPPORT]
The specified address is invalid for the address family of the
specified socket.
[EBADF] The socket parameter is not valid.
[EDESTADDRREQ]
For an AF_UNIX socket, the address argument is a null pointer.
[EFAULT] The address parameter is not in a readable part of the user
address space.
[EINVAL] The socket is already bound to an address and the protocol does
not support binding to a new address; the socket has been shut
down; or the length or the address_len argument is invalid for
the address family.
[EIO] For an AF_UNIX socket, an I/O error occurred.
[EISCONN] The socket is already connected.
[EISDIR] The address argument is a null pointer.
[ELOOP] For an AF_UNIX socket, too many symbolic links were encountered
in translating the pathname in address.
[ENAMETOOLONG]
A component of the pathname exceeded NAME_MAX characters, or an
entire pathname exceeded PATH_MAX characters.
[ENOBUFS] Insufficient resources were available in the system to complete
the call.
[ENOENT] For an AF_UNIX socket, a component of the pathname does not name
an existing file or the pathname is an empty string.
[ENOSR] The available STREAMS resources were insufficient for the
operation to complete.
[ENOTDIR] For an AF_UNIX socket, a component of the path prefix of the
pathname in address is not a directory.
[ENOTSOCK]
The socket parameter refers to a file, not a socket.
[EOPNOTSUPP]
The socket type of the specified socket does not support binding
to an address.
[EROFS] For an AF_UNIX socket, the name would reside on a read-only
filesystem.
RELATED INFORMATION
Functions: connect(2), listen(2), socket(2), getsockname(2).
Standards: standards(5).
Network Programmer's Guide
System Configuration and Tuning
 |
Index for Section 2 |
|
 |
Alphabetical listing for B |
|
 |
Top of page |
|