SOCKETCALL(2)

名前
socketcall - ソケットシステムコール

書式
#include <linux/net.h>

int socketcall(int call, unsigned long *args);

説明
socketcall() はソケットシステムコールのための共通のカーネルエントリー ポイント(kernel entry point)である。 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)

準拠
このコールは Linux 特有であり、移植を意図したプログラムで 使用してはいけない。

注意
いくつかのアーキテクチャー\(emfor 例えば x86-64 や ARM\(emでは、システムコール socketcall() が存在しない。実際には、その代わりに socket(2), accept(2), bind(2) などが独立したシステムコールとして実装されている。

On x86-32, socketcall() was historically the only entry point for the sockets API. However, starting in Linux 4.3, direct system calls are provided on x86-32 for the sockets API. This facilitates the creation of seccomp(2) filters that filter sockets system calls (for new user-space binaries that are compiled to use the new entry points) and also provides a (very) small performance improvement.

関連項目
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)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。