c - 杀死由其他程序创建的子程序

标签 c linux

我正在编写一个使用 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/

相关文章:

c - C99 标准是否允许将变量分配给自身?

python - 如何将多个变量从Python脚本传递到C shell脚本

linux - 如何在 linux 上访问包含的点目录?

linux - Linux中writev()系统调用的原子性

c - 位掩码困惑

c - 程序跳过部分代码

linux - Ubuntu Linux - 从本地存储库安装软件包

linux - 将一个字符串替换为另一个带斜杠的字符串的命令

c - 一个提供发送电子邮件功能的开源C库?

linux - 如何使用 sed 或 awk 将两个文件的每一行组合在一起?