socketcall -
ソケットシステムコール
#include <linux/net.h>
int socketcall(int call, unsigned long
*args);
socketcall()
はソケットシステムコールのための共通のカーネルエントリー
ポイント(kernel entry
point)である。
call
はどのソケット関数を呼び出すかを指定する。
args
は適切なコールに渡すための実際の引数を含んでいるブロックを指す。
ユーザープログラムは通常の名前を使用して適切な関数を呼び出すべきである。
標準ライブラリの実装者やカーネルハッカーのみが
socketcall()
について知る必要がある。
このコールは 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/
に書かれている。