1

我这里有这段代码,它是通过并行或顺序在不同的进程中多次执行一个程序。一段时间后,我需要杀死所有孩子才能停止程序。

但是每当我试图杀死孩子时,当前正在执行这一行的孩子 execvp(cmdTokens[0], cmdTokens); 将不会停止,直到它完成。似乎它会杀死循环,但不会杀死当前正在运行的孩子。

4

1 回答 1

1

如果成功,exec 类函数将永远不会返回。它们本质上将您的流程转变为您正在调用的东西。这就是为什么你在调用 exec 之前 fork 假设你想保持你的原始进程运行。如果他们无法启动进程(例如找不到文件),他们可以返回。

于 2012-10-01T23:15:32.953 回答