socketpair创建双向pipe


ForeWord


本文介绍了域间套接字socketpair的概念,并用其实现了进程间的双向通信。

123

tips:全文阅读需3min


socketpair


我们知道,进程通信中,pipe用来创建管道,但是单个管道只能单向通信,一端用于读,而另一端用于写。

如果要实现进程双向通信,必须创建一对管道。

socketpair则可以用来创建双向通信的管道,实现进程间双向通信。


Code


下面是该函数的函数体:

1

其中,sv[0]和sv[1]用于返回新套接字的描述符:

2

接下来通过代码看一下它是如何实现进程双向通信的:

Step1:调用函数创建socketpair

4

Step2: fork子进程,并利用read\write实现相应功能

5
6

Step3:不要忘记头文件

13

运行程序,实现了进程双向通信:

3