getsockopt(2) | System Calls Manual | getsockopt(2) |
getsockopt, setsockopt - получить или установить флаги сокета
Standard C library (libc, -lc)
#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname, void optval[restrict *.optlen], socklen_t *restrict optlen); int setsockopt(int sockfd, int level, int optname, const void optval[.optlen], socklen_t optlen);
getsockopt() и setsockopt() управляют параметрами сокета, на который указывает файловый дескриптор sockfd. Параметры могут быть из различных уровней протоколов; они всегда присутствуют на самом верхнем уровне сокета.
При работе с параметрами сокета должен быть указан уровень, на котором находится этот параметр и его имя. Для работы с параметрами на уровне API сокета в level указывается значение SOL_SOCKET. Для работы с параметрами на любом другом уровне, этим вызовам передаётся номер соответствующего протокола, который они контролируют. Например, для указания, что параметр должен интерпретироваться протоколом TCP, в level нужно указать номер протокола TCP; смотрите getprotoent(3).
Аргументы optval и optlen используются в setsockopt() для доступа к значениям параметров. Для getsockopt() они задают буфер, в который нужно поместить запрошенное значение параметра при возврате. У getsockopt() в аргументе optlen изначально содержится размер буфера, на который указывает optval, а при завершении в нём содержится реальный размер возвращаемого значения. Если значение параметра не указывается или возвращается, то optval может быть NULL.
Аргумент optname и все указанные параметры без изменений передаются для интерпретации соответствующему модулю протоколов. Файл <sys/socket.h> содержит определения параметров уровня сокета; их описание дано ниже. Параметры на других уровнях протоколов различаются по формату и по имени. Обращайтесь к соответствующим файлам раздела 4 справочных страниц.
Большинство параметров уровня сокета используют тип int для аргумента optval. Чтобы установить параметр логического типа аргумент setsockopt() должен быть ненулевым, и ноль, если нужно отключить этот параметр.
Описание доступных параметров сокетов находится в socket(7) и соответствующих протоколам справочных страницах.
On success, zero is returned for the standard options. On error, -1 is returned, and errno is set to indicate the error.
Netfilter позволяет программисту определять собственные параметры сокетов со привязанными обработчиками; для таких параметров при успешном выполнении возвращается значение, полученное от обработчика.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (данные системные вызовы впервые появились в 4.2BSD).
Описание типа socklen_t смотрите в accept(2).
Некоторые параметры сокетов должны обрабатываться на более низких уровнях системы.
ioctl(2), socket(2), getprotoent(3), protocols(5), ip(7), packet(7), socket(7), tcp(7), udp(7), unix(7)
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
10 ноября 2022 г. | Linux man-pages 6.03 |