gpt4 book ai didi

c - 父进程和子进程,如果一个退出,如何通知另一个退出?

转载 作者:太空狗 更新时间:2023-10-29 11:04:54 25 4
gpt4 key购买 nike

如果我在我的 linux C 程序中生成一个进程并且总共有 2 个进程,一个父进程和一个子进程。我想:如果这两个进程之一退出,另一个进程也退出。

如何实现?有没有类似的源码?

注意:我不想同时阻塞两个进程,例如,我不想让父进程被 wait() 阻塞

谢谢!

最佳答案

在父进程中你可以使用waitpid系统调用。它会一直阻塞,直到 child 退出。

在子进程中你不能使用waitpid。一种选择是父亲在退出时通过向 child 发送 SIGTERM 来通知 child 。但这只有在父亲不会被 SIGKILL 杀死的情况下才有效。我建议使用带有参数 0kill 定期向父进程发送信号。如果失败,则进程终止。

来自kill(2) man page :

if sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID.

关于c - 父进程和子进程,如果一个退出,如何通知另一个退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com