遵循规范

此调用特定于Linux,不应在旨在可移植的程序中使用。

另外参见

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)

语法

#包括

int socketcall(int调用,无符号长* args);

名称

socketcall-套接字系统调用

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

socketcall()是套接字系统调用的常见内核入口点。调用确定要调用的套接字函数。 args指向一个包含实际参数的块,该参数将传递给相应的调用。

用户程序应使用其常用名称来调用适当的功能。只有标准库实现者和内核黑客才需要了解socketcall()。

callMan page
SYS_SOCKETsocket(2)
SYS_BINDbind(2)
SYS_CONNECTconnect(2)
SYS_LISTENlisten(2)
SYS_ACCEPTaccept(2)
SYS_GETSOCKNAMEgetsockname(2)
SYS_GETPEERNAMEgetpeername(2)
SYS_SOCKETPAIRsocketpair(2)
SYS_SENDsend(2)
SYS_RECVrecv(2)
SYS_SENDTOsendto(2)
SYS_RECVFROMrecvfrom(2)
SYS_SHUTDOWNshutdown(2)
SYS_SETSOCKOPTsetsockopt(2)
SYS_GETSOCKOPTgetsockopt(2)
SYS_SENDMSGsendmsg(2)
SYS_RECVMSGrecvmsg(2)
SYS_ACCEPT4accept4(2)
SYS_RECVMMSGrecvmmsg(2)
SYS_SENDMMSGsendmmsg(2)
SOCKETCALL - Linux手册页

Linux程序员手册 第2部分
更新日期: 2017-09-15

备注

在某些体系结构(例如x86-64和ARM)上,没有socketcall()系统调用。而是将socket(2),accept(2),bind(2)等真正实现为单独的系统调用。

在x86-32上,socketcall()一直是套接字API的唯一入口点。但是,从Linux 4.3开始,在x86-32上为套接字API提供了直接的系统调用。这有助于创建seccomp(2)过滤器,该过滤器可过滤套接字系统调用(对于已编译为使用新入口点的新用户空间二进制文件),并且还提供了(非常)小的性能改进。

日期:2019-08-20 17:59:27 来源:oir作者:oir