管道通信
管道:
—
就像现实中的水管,水就像数据。
—
管道是一种半双工的通信方式
—
数据只能单向流动,而且只能在具有共同祖先的进程间使用。
所谓半双工的模式(以下是我的理解):
形象来说类似一个单刀双掷开关,有两个选择,但是二者是互斥的,当选择了一方另一方就失效。
而对于此处的管道,可以把它想成是管道的一端,一次只能调用一种功能读入或者写入,二者也是互斥的。
同时对应的fd[0]与fd[1]其实是一个类似一个临界区的资源,一次只能由一个进程使用一种功能,所以使用时要注意分配读和写的功能。
函数介绍
:
所谓半双工的模式(以下是我的理解):
形象来说类似一个单刀双掷开关,有两个选择,但是二者是互斥的,当选择了一方另一方就失效。
而对于此处的管道,可以把它想成是管道的一端,一次只能调用一种功能读入或者写入,二者也是互斥的。
同时对应的fd[0]与fd[1]其实是一个类似一个临界区的资源,一次只能由一个进程使用一种功能,所以使用时要注意分配读和写的功能。
¢
int
read(
int
fd
, void *
buf
,
int
count);
—
功能:从参数