SOCKETCALL(2)

ИМЯ
socketcall - системные вызовы сокетов

ОБЗОР
int socketcall(int call, unsigned long *args);

ОПИСАНИЕ
socketcall() — это общая точка входа в ядро всех системных вызовов сокетов. В аргументе call задаётся функция сокета, которая будет вызвана. Аргумент args указывает на блок параметров функции, которые передаются соответствующему вызову.

Пользовательские программы должны оперировать обычными функциями, имеющими стандартные имена. О существовании socketcall() необходимо знать лишь создателям стандартных библиотек и ядра.

СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция есть только в Linux, и она не должна использоваться в переносимых программах.

ЗАМЕЧАНИЯ
На некоторых архитектурах, например x86-64 и ARM, нет системного вызова socketcall(); вместо него реализованы системные вызовы socket(2), accept(2), bind(2) и т.д. Для архитектуры x86-32, socketcall() исторически имел только одну точку входа в программном интерфейсе сокетов. Однако начиная с Linux 4.3, для x86-32 появились прямые системные вызовы в программном интерфейсе сокетов. for the sockets API. Это упрощает создание фильтров seccomp(2), которые отбирают системные вызовы сокетов (для новых пользовательских исполняемых файлов, которые компилируются с использованием новых точек входа), а также улучшают (совсем немного) производительность.

СМОТРИТЕ ТАКЖЕ
accept(2), bind(2), connect(2), getpeername(2), getsockname(2), getsockopt(2), listen(2), recv(2), recvfrom(2), recvmsg(2), send(2), sendmsg(2), sendto(2), setsockopt(2), shutdown(2), socket(2), socketpair(2)