1. Home
  2. Computing & Technology
  3. Linux
Linux / Unix Command: bind
Command Library

NAME

bind - bind a name to a socket  

SYNOPSIS

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

int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);  

DESCRIPTION

bind gives the socket sockfd the local address my_addr. my_addr is addrlen bytes long. Traditionally, this is called lqassigning a name to a socket.rq When a socket is created with socket(2), it exists in a name space (address family) but has no name assigned.

It is normally necessary to assign a local address using bind before a SOCK_STREAM socket may receive connections (see accept(2)).

The rules used in name binding vary between address families. Consult the manual entries in Section 7 for detailed information. For AF_INET see ip(7), for AF_UNIX see unix(7), for AF_APPLETALK see ddp(7), for AF_PACKET see packet(7), for AF_X25 see x25(7) and for AF_NETLINK see netlink(7).

 

RETURN VALUE

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.  

ERRORS

EBADF
sockfd is not a valid descriptor.
EINVAL
The socket is already bound to an address. This may change in the future: see linux/unix/sock.c for details.
EACCES
The address is protected, and the user is not the super-user.
ENOTSOCK
Argument is a descriptor for a file, not a socket.

The following errors are specific to UNIX domain (AF_UNIX) sockets:

EINVAL
The addrlen is wrong, or the socket was not in the AF_UNIX family.
EROFS
The socket inode would reside on a read-only file system.
EFAULT
my_addr points outside the user's accessible address space.
ENAMETOOLONG
my_addr is too long.
ENOENT
The file does not exist.
ENOMEM
Insufficient kernel memory was available.
ENOTDIR
A component of the path prefix is not a directory.
EACCES
Search permission is denied on a component of the path prefix.
ELOOP
Too many symbolic links were encountered in resolving my_addr.
 

SEE ALSO

accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7), socket(7)


Important: Use the man command (% man) to see how a command is used on your particular computer.

>> Linux/Unix Command Library

>> Shell Command Library

Explore Linux
About.com Special Features

Holiday Central

What to eat, where to go, fun things to do and how to save money on the perfect gifts. More >

Family Tech Center

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

  1. Home
  2. Computing & Technology
  3. Linux

©2009 About.com, a part of The New York Times Company.

All rights reserved.