gpt4 book ai didi

c - 收到 SIGCHLD 但尚未生成任何子进程

转载 作者:行者123 更新时间:2023-11-30 19:35:31 26 4
gpt4 key购买 nike

我有一个在 Linux 3.12 上运行的 C 程序。该程序产生几个子进程。其中一个进程会生成一个线程,该线程运行一段时间然后终止。当该子进程运行时,它会执行 epoll_wait()。 epoll_wait 会定期返回 EINTR 错误。我设置了子进程来捕获执行此中断的信号,发现它是信号 17,根据我读到的所有内容,它是一个 SIGCHLD。问题是,该子进程生成的线程仍在运行。它并没有终止。我还认为线程在终止时不会生成 SIGCHLD。

对于为什么我的进程可能会收到信号 17 有什么想法吗?

最佳答案

答案是调用 system()。代码中的此函数会生成一个进程来执行传入的 shell 命令。该线程正在调用 system() 来运行一些 shell 命令。当它们完成时,生成的进程结束并生成 SIGCHLD。

关于c - 收到 SIGCHLD 但尚未生成任何子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42517997/

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