我正在编写一个使用 system()
函数启动另一个程序的 C 程序。我想知道如果主程序被终止,是否有可能终止启动的程序。我正在为 Linux 机器编程。
示例:
/* foo.c */
int main()
{
system("./blah");
return 0;
}
blah 做任何必须做的事。如果我杀死 foo,blah 仍在运行。
有什么方法可以让 foo 在死后杀死 blah 吗?
最佳答案
您需要使用信号处理 来了解何时有人/某事试图终止您的应用程序,请阅读以下文档以获取更多信息。
除此之外,您还需要知道生成的子 进程的进程ID。为此,我建议使用比 system
更复杂的东西来启动您启动的进程。
您还必须知道如何杀死生成的 child(使用它的 pid
)。
关于c - 杀死由其他程序创建的子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9704998/