0
我想要做的是創造這種溝通與管道:創建3個孩子用叉子
1
/ \
3 2
\ /
4
所以應該會有3 children.The父母發送一些東西到第一和第二個孩子。第一個和第二個孩子在完成他們的工作之後將結果發送給第三個孩子。第三個孩子打印發送的數據。
有人能告訴我理論上還是給我看一個簡單的例子,應該如何看待?
我想要做的是創造這種溝通與管道:創建3個孩子用叉子
1
/ \
3 2
\ /
4
所以應該會有3 children.The父母發送一些東西到第一和第二個孩子。第一個和第二個孩子在完成他們的工作之後將結果發送給第三個孩子。第三個孩子打印發送的數據。
有人能告訴我理論上還是給我看一個簡單的例子,應該如何看待?
管道只是發送者和接收者之間的通道。正如你想要2和3能夠發送東西到4,必須已經創建了4的管道(否則,4應該是2和3的直接子節,這是不可能的)
因此,IHMO這裏是如何可以實施:
上述許多順序可以更改。您必須首先創建管道,不要在所有進程分叉並且(等待和)最後關閉之前關閉任何管道。
父級創建四個管道,然後分叉三個孩子。然後父母和孩子每個關閉他們自己不會使用的所有管端。這四個過程根據需要寫入/或讀取到剩餘的開放管端。根據具體要求,第三個孩子可能需要也可能不需要使用select()或poll()來幫助處理多路複用輸入,而無需不必要的阻塞。 –