socketpair函数是用来创建一对相互连接的套接字的,这对套接字可以用于双向通信。这对套接字之间是全双工通信的,可以同时进行读写操作。
使用socketpair函数创建的套接字对是同一个主机上的进程间通信的方式之一。该函数在调用成功后,会创建一对相互连接的套接字,并将这对套接字的文件描述符存储在一个整型数组中,通过该数组可以访问这对套接字。
下面是一个使用socketpair函数创建双向通信的例子:
```c
#include
#include
int main() {
int sockfd[2];
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd) < 0) {
perror("socketpair");
exit(1);
}
// sockfd[0]和sockfd[1]是相互连接的套接字,可以进行读写操作
return 0;
}
```
在上面的例子中,socketpair函数创建了一对相互连接的套接字,并将它们的文件描述符存储在sockfd数组中。接下来,我们可以使用sockfd[0]和sockfd[1]进行读写操作,实现进程间的双向通信。