bindresvport()

Назначить сокет привилегированному IP порту

Прототип:

#include <sys/types.h>
#include <netinet/in.h>
int bindresvport( int sd,
struct sockaddr_in *sin );

Аргументы:

sd
Дескриптор сокета для привязки к порту.
sin
Указатель на структуру sockaddr_in, содержащую привилегированный IP port.

Библиотека:

libsocket

Описание:

Функция bindresvport() назначает сокет привилегированному IP порту (т.e. номер порта в диапазоне 0-1023).


Note: Только root может подключиться к привилегированному порту; этот вызов не работает для любого другого пользователя.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EACCES
Необходимо быть root для вызова bindresvport().
EADDRINUSE
Указанный адрес уже используется.
EADDRNOTAVAIL
Указанный адрес недоступен на локальном компьютере.
EBADF
Некорректный дескриптор sd.
EFAULT
Параметр sin не указывает на структуру sockaddr_in.
EINVAL
Сокет уже привязан к порту.
EPFNOSUPPORT
Семейство протоколов не поддерживается.

Классификация:

Unix

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

connect(), getsockname(), listen(), socket()




Предыдущий раздел: Описание API сетевой библиотеки