我这里有这个代码,它是通过并行或顺序在不同进程中多次执行程序。经过一段时间后,我需要杀死所有孩子才能停止该计划。
但每当我试图杀死孩子时,当前正在执行此行的孩子execvp(cmdTokens [0],cmdTokens);都不会停止直到它完成。它似乎杀死了循环,但不是当前正在运行的孩子。
答案 0 :(得分:1)
如果exec类功能成功,它们将永远不会返回。它们本质上将您的过程转换为您正在调用的事物。这就是为什么在调用exec之前进行fork,假设您希望保持原始进程运行。如果他们无法启动该过程,他们可以返回(例如,例如找不到文件)。