socketcall(2)

НАИМЕНОВАНИЕ
socketcall - системные вызовы сокетов

БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)

ОБЗОР
#include <linux/net.h>        /* Definition of SYS_* constants */
#include <sys/syscall.h>      /* Definition of SYS_socketcall */
#include <unistd.h>

int syscall(SYS_socketcall, int call, unsigned long *args);

Note: glibc provides no wrapper for socketcall(), necessitating the use of syscall(2).

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

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

call | Справочная страница
SYS_SOCKET | socket(2)
SYS_BIND | bind(2)
SYS_CONNECT | connect(2)
SYS_LISTEN | listen(2)
SYS_ACCEPT | accept(2)
SYS_GETSOCKNAME | getsockname(2)
SYS_GETPEERNAME | getpeername(2)
SYS_SOCKETPAIR | socketpair(2)
SYS_SEND | send(2)
SYS_RECV | recv(2)
SYS_SENDTO | sendto(2)
SYS_RECVFROM | recvfrom(2)
SYS_SHUTDOWN | shutdown(2)
SYS_SETSOCKOPT | setsockopt(2)
SYS_GETSOCKOPT | getsockopt(2)
SYS_SENDMSG | sendmsg(2)
SYS_RECVMSG | recvmsg(2)
SYS_ACCEPT4 | accept4(2)
SYS_RECVMMSG | recvmmsg(2)
SYS_SENDMMSG | sendmmsg(2)

ВЕРСИИ
On some architectures —for example, x86-64 and ARM— there is no socketcall() system call; instead socket(2), accept(2), bind(2), and so on really are implemented as separate system calls.

СТАНДАРТЫ
Linux.

Для архитектуры 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)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).