Provided by: manpages-ru-dev_4.23.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() используется статическая незащищённая блокировкой переменная,
       поэтому функцию нельзя использовать в нескольких нитях одновременно.

ВЕРСИИ

       Present on the BSDs, Solaris, and many other systems.

ПРИМЕЧАНИЯ

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

СТАНДАРТЫ

       BSD.

СМОТРИТЕ ТАКЖЕ

       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  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

Linux man-pages 6.8                               2 мая 2024 г.                                  bindresvport(3)