【发布时间】:2013-05-25 22:42:56
【问题描述】:
我正在使用很多叉子制作一个小程序。第一个父母必须等待每个孩子。 只有一个孩子很容易,有孩子结束信号(SIGCLHD)。但是,如果我的第一个孩子在最后一个孩子之前结束怎么办?我的主程序在everychilds 结束之前运行,我需要主程序等待孩子。
每个孩子都以执行另一个程序结束,这解释了为什么我不能与信号量之类的东西同步。
// Working pretty good
execvp(
c->command_name, /* program to execute */
c->argv /* argv of program to exécuter */
);
这是我的“分叉结构”:
main
|
|------
| |
| |
| |------
| | |
| EOE |
| |
| EOE
|
|
EOE
传说:
- EOE 的意思是“执行结束
- 最上面一行是时间线
- 左边的每一步都是新的孩子。
- 每个竖条代表一个条的执行
谢谢!
【问题讨论】: