SOCKETPAIR - Linux手册页
Linux程序员手册 第2部分
更新日期: 2020-06-09
名称
socketpair-创建一对连接的套接字
语法
#include / 请参阅注释/
#包括
int套接字对(int域,int类型,int协议,int sv [2]);
说明
socketpair()调用使用指定的协议在指定的域,指定的类型中创建一对未命名的已连接套接字。有关这些参数的更多详细信息,请参见socket(2)。
引用新套接字时使用的文件描述符在sv [0]和sv [1]中返回。这两个插座是无法区分的。
返回值
成功时,返回零。错误时,返回-1,正确设置errno,并且sv保持不变
在Linux(和其他系统)上,socketpair()不会在失败时修改sv。在POSIX.1-2008 TC2中添加了标准化此行为的要求。
错误说明
- EAFNOSUPPORT
- 该机器不支持指定的地址族。
- EFAULT
- 地址sv没有指定进程地址空间的有效部分。
- EMFILE
- 已达到打开文件描述符数量的每个进程限制。
- ENFILE
- 已达到系统范围内打开文件总数的限制。
- EOPNOTSUPP
- 指定的协议不支持套接字对的创建。
- EPROTONOSUPPORT
- 本机不支持指定的协议。
遵循规范
POSIX.1-2001,POSIX.1-2008、4.4BSD。 socketpair()最早出现在4.2BSD中。它通常可移植到支持BSD套接字层克隆(包括System V变体)的非BSD系统中或从中移植出来。
备注
在Linux上,此调用唯一受支持的域是AF_UNIX(或同义为AF_LOCAL)和AF_TIPC(从Linux 4.12开始)。
从Linux 2.6.27开始,socketpair()在type参数中支持SOCK_NONBLOCK和SOCK_CLOEXEC标志,如socket(2)中所述。
POSIX.1不需要包含,并且在Linux上不需要此头文件。但是,某些历史(BSD)实现需要此头文件,而可移植的应用程序最好将其包括在内。
另外参见
管道(2),读取(2),套接字(2),写入(2),套接字(7),unix(7)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。