ОБЗОР
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), которые отбирают системные вызовы сокетов (для новых пользовательских исполняемых файлов, которые компилируются с использованием новых точек входа), а также улучшают (совсем немного) производительность.