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

OSF

NAME

bind −   Binds a name to a socket

SYNOPSIS

#include <sys/types.h>
#include <sys/socket.h> int bind ( int socket,
struct sockaddr ∗address,
int address_len );

PARAMETERS

socketSpecifies the socket descriptor of the socket to be bound. 

addressPoints 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.  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_lenSpecifies 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.  An application program can retrieve the assigned socket name with the getsockname() function. 

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:

[EBADF]The socket parameter is not valid. 

[ENOTSOCK]
The socket parameter refers to a file, 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 does not have permission to access it. 

[EFAULT]The address parameter is not in a readable part of the user address space. 

RELATED INFORMATION

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

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