gpt4 book ai didi

c - 哪个子进程发送SIGCHLD

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:57 25 4
gpt4 key购买 nike

我正在尝试了解信号处理和过程。我有一个创建了多个子进程的父进程。现在在父进程中我有一个所有子进程的列表。当一个 child 被终止时,我想从列表中删除它。我知道当一个 child 被终止时,他正在向 parent 发送 SIGCHLD。好的,现在是棘手的部分了,我怎样才能知道那个 child 是终止了还是只是暂停了还是其他什么?

最佳答案

如你所说

when a child is terminated he's sending SIGCHLD to the parent

让家长打电话wait() .

要么

  • 通过阻塞调用wait()
  • 在连续的基础上或
  • 通过设置为 SIGCHLD 服务的信号处理程序,后者又会调用 wait()

如果使用 WUNTRACED 选项调用 waitpid() 并使用 -1 的 pid,然后应用宏 WIFSTOPPEDwaitpid() 返回的值,它告诉您进程是停止还是结束。

对于 Linux,因为内核版本 2.6.10 与 WIFSTOPPED 相同,适用于 WCONTINUED

关于c - 哪个子进程发送SIGCHLD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19814906/

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