SOCKETCALL - Linux手册页
Linux程序员手册 第2部分
更新日期: 2017-09-15
名称
socketcall-套接字系统调用
语法
#包括
int socketcall(int调用,无符号长* args);
说明
socketcall()是套接字系统调用的常见内核入口点。调用确定要调用的套接字函数。 args指向一个包含实际参数的块,该参数将传递给相应的调用。
用户程序应使用其常用名称来调用适当的功能。只有标准库实现者和内核黑客才需要了解socketcall()。
call | Man page |
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,不应在旨在可移植的程序中使用。
备注
在某些体系结构(例如x86-64和ARM)上,没有socketcall()系统调用。而是将socket(2),accept(2),bind(2)等真正实现为单独的系统调用。
在x86-32上,socketcall()一直是套接字API的唯一入口点。但是,从Linux 4.3开始,在x86-32上为套接字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)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。