Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(2)

listen(2)

socket(2)

getsockname(2)

BIND(2)  —  SYSTEM CALLS

NAME

bind − bind a name to a socket

SYNOPSIS

#include <sys/types.h>
#include <sys/socket.h>

bind(s, name, namelen)
int s;
struct sockaddr ∗name;
int namelen;

DESCRIPTION

bind assigns a name to an unnamed socket.  When a socket is created with socket(2) 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. 

NOTES

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 (using unlink(2)).

The rules used in name binding vary between communication domains.  Consult the manual entries in section 4 for detailed information. 

RETURN VALUE

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 not a socket. 

EADDRNOTAVAIL The specified address is not available from the local machine. 

EADDRINUSE The specified address is already in use. 

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. 

EFAULT The name parameter is not in a valid part of the user address space. 

The following errors are specific to binding names in the UNIX domain. 

ENOTDIR A component of the path prefix of the path name in name is not a directory. 

EINVAL The path name in name contains a character with the high-order bit set. 

ENAMETOOLONG
The length of a component of the path name in name exceeds 255 characters, or the length of the path name in name exceeds 1023 characters. 

ENOENT A component of the path prefix of the path name in name does not exist. 

EACCES Search permission is denied for a component of the path prefix of the path name in name.

ELOOP Too many symbolic links were encountered in translating the path name 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 path name was specified. 

SEE ALSO

connect(2), listen(2), socket(2), getsockname(2)

Sun Release 3.2  —  Last change: 16 July 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026