我有一个任务要编写一个程序来使用 fork off 一个孩子。该孩子将分叉出自己的孩子(原始父母的孙子)。孙子应该 exec() 做一个 ps -ef (例如)。孩子应该等待它的孩子(原始父母的孙子)成功完成。如果它没有成功完成(我假设状态返回码是 0),它应该产生另一个孙子,直到它成功。一旦完成,它应该将 SIGINT 信号发送给它的父级。
这就是我正在做的,第二次分叉孙子时,我按照指定执行。在这里,我也设置了一个信号处理程序。在孩子身上,我等待 (wait(&status)) 并循环 while (status != 0)。这就是想法。
但是,我仍然无法让程序正常工作。我想我的信号处理有问题(?)你能给我一个提示吗?