bind(3N) bind(3N)
NAME
bind - bind a name to a socket
SYNOPSIS
cc [options] file -lsocket -lnsl
#include <sys/types.h>
#include <sys/socket.h>
int bind(int s, const struct sockaddr *name, size_t namelen);
DESCRIPTION
bind assigns a name to an unnamed socket. When a socket is
created with socket, it exists in a name space (address
family) but has no name assigned. bind requests that the name
pointed to by name be assigned to the socket.
Files
usr/lib/locale/locale/LC_MESSAGES/uxnsl
Return Values
If the bind is successful, a 0 value is returned. A return
value of -1 indicates an error, which is further specified in
the global errno.
ERRORS
The bind call will fail if:
EBADF s is not a valid descriptor.
ENOTSOCK s is a descriptor for a file, not a
socket.
EADDRNOTAVAIL The specified address is not available on
the local machine.
EADDRINUSE The specified address is already in use.
EINVAL namelen is not the size of a valid address
for the specified address family.
EINVAL The socket is already bound to an address.
EACCES The requested address is protected and the
current user has inadequate permission to
access it.
Copyright 1994 Novell, Inc. Page 1
bind(3N) bind(3N)
ENOSR There were insufficient STREAMS resources
for the operation to complete.
The following errors are specific to binding names in the UNIX
domain:
ENOTDIR A component of the path prefix of the
pathname in name is not a directory.
ENOENT A component of the path prefix of the
pathname in name does not exist.
EACCES Search permission is denied for a
component of the path prefix of the
pathname in name.
ELOOP Too many symbolic links were encountered
in translating the pathname in name.
EIO An I/O error occurred while making the
directory entry or allocating the inode.
EROFS The inode would reside on a read-only file
system.
EISDIR A null pathname was specified.
REFERENCES
connect(3N), getsockname(3N), listen(3N), socket(3N),
unlink(2)
NOTICES
Binding a name in the UNIX domain creates a socket in the file
system that must be deleted by the caller when it is no longer
needed [see unlink(2)].
The rules used in name binding vary between communication
domains.
The type of address structure passed to bind depends on the
address family. UNIX domain sockets (address family AF_UNIX)
require a struct sockaddr_un as defined in sys/un.h; Internet
domain sockets (address family AF_INET) require a struct
sockaddr_in as defined in netinet/in.h. Other address
families may require other structures. Use the structure
appropriate to the address family; cast the structure address
Copyright 1994 Novell, Inc. Page 2
bind(3N) bind(3N)
to a struct sockaddr* in the call to bind and pass the size of
the structure in the namelen argument.
Copyright 1994 Novell, Inc. Page 3