Установить параметры сокета
#include <sys/types.h>
#include <sys/socket.h>
int setsockopt( int s,
int level,
int optname,
const void *optval,
socklen_t optlen );
- s
- Файловый дескриптор сокета, возвращаемый функцией socket(), к которому должен быть применен параметр.
- level
- Уровень протокола, к которому должна применяться опция. В большинстве случаев это параметр на уровне сокета и обозначается
SOL_SOCKET
.
- optname
- Параметр для дескриптора файла сокета.
- optval
- Указатель на значение параметра (в большинстве случаев независимо от того, должен ли параметр быть включен или выключен). Если значение параметра не должно возвращаться, optval может иметь значение
NULL
. Большинство параметров уровня сокета используют параметр int
для optval. Другие, такие как параметры SO_LINGER, SO_SNDTIMEO и SO_RCVTIMEO, используют структуры, которые также позволяют получать данные, связанные с параметром.
- optlen
- Указатель на длину значения параметра. Этот аргумент является параметром "значение-результат"; необходимо инициализировать его, чтобы указать размер буфера, на который указывает optval.
libsocket
Функция setsockopt() устанавливает параметры сокета.
См. getsockopt() для получения более подробной информации.
- 0
- Успешное завершение.
- -1
- Возникла ошибка. Код ошибки записан в errno.
- EBADF
- Некорректный файловый дескриптор s.
- EDOM
- Значение вне допустимого диапазона.
- EFAULT
- Адрес, на который указывает optval находится вне допустимого адресного прострнаства процесса.
- EINVAL
- optval не был указан.
- ENOPROTOOPT
- Параметр недоступен на указанном уровне.
POSIX 1003.1
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
ICMP, IP, TCP, и UDP протоколы
getsockopt(), socket()
Предыдущий раздел: Описание API сетевой библиотеки