2013-07-06 21 views
2

所以我在C編寫一個Unix shell,並且遇到了一個競爭條件。我確定我可以解決它,如果在我的Fork()調用之後,我可以確保父項在孩子之前運行。有什麼方法可以使用信號或任何其他類型的進程間通信來做到這一點?叉子 - 如何確保父母先行?

回答

1

您可以設置一個信號處理程序並讓孩子等待它, SIGUSR1。

+0

我可以在我做Fork()調用的函數內做到這一點,或者我需要設置另一個信號處理函數嗎? – user1174511

+0

if(fork == 0)是孩子,從那一刻起你就可以在新過程中做你需要的東西。不過通常你會先做一些清理工作。儘管如此,用一個管道可能會更好,因爲那樣你可以無條件地等待父母,直到它發送一些命令。 – Devolus

+0

我做了一些玩弄管道,它似乎工作得很好。謝謝! – user1174511

相關問題