Provided by:
manpages-ru_0.98-4_all 
НАЗВАНИЕ
bind - привязать имя к сокету
ОБЗОР
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
ОПИСАНИЕ
bind привязывает к сокету sockfd локальный адрес my_addr длиной
addrlen. Традиционно, эта операция называется "присваивание сокету
имени." Когда сокет только что создан с помощью socket(2), он
существует в пространстве имён (семействе адресов), но не имеет
назначенного имени.
Обычно сокету типа SOCK_STREAM требуется назначить локальный адрес с
помощью bind, перед тем, как он сможет принимать соединения (см.
accept(2)).
Правила, используемые при привязке имён, разные в разных семействах
адресов. Обратитесь к соответствующему руководству в секции 7 за
дальнейшей информацией. Для AF_INET смотри ip(7), для AF_UNIX смотри
unix(7), для AF_APPLETALK смотри ddp(7), для AF_PACKET смотри
packet(7), для AF_X25 смотри x25(7), а для AF_NETLINK смотри
netlink(7).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno
устанавливается должным образом.
ОШИБКИ
EBADF sockfd не является правильным дескриптором.
EINVAL Сокет уже привязан к какому-то адресу. Эта ошибка в будущем
может не выдаваться, смотри linux/unix/sock.c, где описаны
детали.
EACCES Адрес защищен, или пользователь не является суперпользователем.
ENOTSOCK
Аргумент системного вызова является дескриптором файла, а не
сокета.
Нижеследующие ошибки специфичны для сокетов домена UNIX (AF_UNIX):
EINVAL Параметр addrlen неверен, или сокет не был найден в семействе
адресов AF_UNIX.
EROFS Попытка создания inode сокета на файловой системе "только для
чтения".
EFAULT my_addr указывает за пределы доступного адресного пространства.
ENAMETOOLONG
my_addr слишком длинно.
ENOENT Файл не существует.
ENOMEM Ядру не хватило памяти.
ENOTDIR Компонент пути, использованный как каталог, в действительности
таковым не является.
EACCES Не разрешен поиск в одном из компонентов пути.
ELOOP my_addr является зацикленной символической ссылкой, то есть при
подстановке возникает ссылка на неё саму.
ОШИБКИ
Не описываются ключи, связанные с работой прозрачных прокси.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (функция bind впервые появилась в BSD 4.2). SVr4
документирует дополнительные коды ошибок EADDRNOTAVAIL, EADDRINUSE, и
ENOSR, и дополнительные коды ошибок домена Unix: EIO и EISDIR
ЗАМЕЧАНИЕ
Третий аргумент вызова bind в действительности имеет тип int (это
именно так в BSD 4.*, libc4 и libc5). При разработке стандарта POSIX
случилось некоторое недопонимание, и появился тип socklen_t. Смотри
также accept(2).
СМОТРИ ТАКЖЕ
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7),
socket(7)
ПЕРЕВОД
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999