Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       bindresvport - привязывает сокет к привилегированному порту IP

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sys/types.h>
       #include <netinet/in.h>

       int bindresvport(int sockfd, struct sockaddr_in *sin);

ОПИСАНИЕ

       Функция  bindresvport()  используется  для  привязки сокета, на который указывает файловый
       дескриптор  sockfd,  к  привилегированному  анонимному  порту  IP,  то  есть   произвольно
       выбранному порту с номером из диапазона от 512 до 1023.

       Если  bind(2),  вызываемый из bindresvport(), выполнен без ошибок, и значение sin не равно
       NULL, то в sin->sin_port возвращается выделенный номер порта.

       Значение sin может быть NULL; в этом случае sin->sin_family неявно присваивается  значение
       AF_INET.  Однако  в  этом  случае  bindresvport() не возвращает номер порта, который был в
       действительности  выделен  (эта  информация  может   быть   получена   позже   с   помощью
       getsockname(2)).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       bindresvport()   returns  0  on  success;  otherwise  -1  is  returned and errno is set to
       indicate the error.

ОШИБКИ

       Функция bindresvport() может завершиться с ошибкой по тем же причинам что и bind(2). Также
       могут возникать следующие ошибки:

       EACCES Вызывающий  процесс  не  имеет  прав  (в Linux: вызывающий процесс не имеет мандата
              CAP_NET_BIND_SERVICE в пользовательском  пространстве,  управляющим  своим  сетевым
              пространством имён).

       EADDRINUSE
              Все привилегированные порты заняты.

       EAFNOSUPPORT (EPFNOSUPPORT в glibc 2.7 и старше)
              Значение sin не равно NULL и sin->sin_family не равно AF_INET.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────┬──────────────────────┬──────────────────────────────────────────────────┐
       │ИнтерфейсАтрибутЗначение                                         │
       ├───────────────┼──────────────────────┼──────────────────────────────────────────────────┤
       │bindresvport() │ Безвредность в нитях │ glibc >= 2.17: MT-Safe; glibc < 2.17: MT-Unsafe  │
       └───────────────┴──────────────────────┴──────────────────────────────────────────────────┘

       До  glibc  2.17 в функции bindresvport() используется статическая незащищённая блокировкой
       переменная, поэтому функцию нельзя использовать в нескольких нитях одновременно.

СТАНДАРТЫ

       Нет в POSIX.1. Присутствует в BSD, Solaris и многих других системах.

ЗАМЕЧАНИЯ

       В отличие от других реализаций bindresvport(), версия  glibc  игнорирует  любые  значения,
       которые передал вызывающий в sin->sin_port.

СМ. ТАКЖЕ

       bind(2), getsockname(2)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан    Artyom    Kunyov
       <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy Ovchinnikov
       <dmitriyxt5@gmail.com>,     Dmitry     Bolkhovskikh     <d20052005@yandex.ru>,    ITriskTI
       <ITriskTI@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.