The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

bind (2)
  • bind (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • bind (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • bind (2) ( FreeBSD man: Системные вызовы )
  • >> bind (2) ( Русские man: Системные вызовы )
  • bind (2) ( Linux man: Системные вызовы )
  • bind (3) ( Solaris man: Библиотечные вызовы )
  • bind (3) ( POSIX man: Библиотечные вызовы )
  • Ключ bind обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    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. Традиционно, эта операция называется lqприсваивание сокету имени.rq Когда сокет только что создан с помощью 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


     

    Index

    НАЗВАНИЕ
    ОБЗОР
    ОПИСАНИЕ
    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
    ОШИБКИ
    ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    ЗАМЕЧАНИЕ
    СМОТРИ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Ideco
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру