2013-07-06 26 views
2

所以我在C编写一个Unix shell,并且遇到了一个竞争条件。我确定我可以解决它,如果在我的Fork()调用之后,我可以确保父项在孩子之前运行。有什么方法可以使用信号或任何其他类型的进程间通信来做到这一点?叉子 - 如何确保父母先行?

回答

1

您可以设置一个信号处理程序并让孩子等待它, SIGUSR1。

+0

我可以在我做Fork()调用的函数内做到这一点,或者我需要设置另一个信号处理函数吗? – user1174511

+0

if(fork == 0)是孩子,从那一刻起你就可以在新过程中做你需要的东西。不过通常你会先做一些清理工作。尽管如此,用一个管道可能会更好,因为那样你可以无条件地等待父母,直到它发送一些命令。 – Devolus

+0

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

相关问题