备注

在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)

SOCKETPAIR - Linux手册页

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

名称

socketpair-创建一对连接的套接字

说明

socketpair()调用使用指定的协议在指定的域,指定的类型中创建一对未命名的已连接套接字。有关这些参数的更多详细信息,请参见socket(2)。

引用新套接字时使用的文件描述符在sv [0]和sv [1]中返回。这两个插座是无法区分的。

出版信息

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

返回值

成功时,返回零。错误时,返回-1,正确设置errno,并且sv保持不变

在Linux(和其他系统)上,socketpair()不会在失败时修改sv。在POSIX.1-2008 TC2中添加了标准化此行为的要求。

遵循规范

POSIX.1-2001,POSIX.1-2008、4.4BSD。 socketpair()最早出现在4.2BSD中。它通常可移植到支持BSD套接字层克隆(包括System V变体)的非BSD系统中或从中移植出来。

语法

#include / 请参阅注释/
#包括

int套接字对(int域,int类型,int协议,int sv [2]);

错误说明

EAFNOSUPPORT
该机器不支持指定的地址族。
EFAULT
地址sv没有指定进程地址空间的有效部分。
EMFILE
已达到打开文件描述符数量的每个进程限制。
ENFILE
已达到系统范围内打开文件总数的限制。
EOPNOTSUPP
指定的协议不支持套接字对的创建。
EPROTONOSUPPORT
本机不支持指定的协议。
日期:2019-08-20 17:59:27 来源:oir作者:oir