C语言中的fork和pipe的问题

2024-12-05 13:23:27
推荐回答(1个)
回答1:

fork -----> fork -----> fork

加入进程A fork出了进程B,然后进程B又fork出了进程C,进程C又fork出了进程D
pipe是管道,只有一个入口,一个出口。可以把入口和出口分别放到父子进程中。
父进程负责读,子进程负责写。或者子进程读,父进程写。
你的例子里,在进程A里创建管道PipeA,然后fork出进程B。进程AB之间使用PipeA通信。
进程B再创建PipeB,然后进程BC之间使用PipeB通信。
进程C再创建PipeC,然后进程CD之间使用PipeC通信。
如果想把进程A的数据传递给进程D,那么应该:进程A向PipeA写入数据,进程B从PipeA中读取数据,然后再写入PipeB,进程C从PipeB中读取数据,然后再写入PipeC,进程D从PipeC中读取数据