Scroll to navigation

SOCKETCALL(2) Linux Programmer's Manual 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/ に書かれている。

2017-09-15 Linux