gpt4 book ai didi

c - 避免在代码的一部分中调用 sigchld 处理程序

转载 作者:行者123 更新时间:2023-11-30 16:11:48 28 4
gpt4 key购买 nike

我的程序上有一个 SIGCHLD 处理程序,它捕获僵尸进程。

如何避免在执行多个 fork() 调用和 waitpid() 调用的代码部分中调用 SIGCHLD 处理程序?

因为现在,当我进行 fork() 调用并且子进程完成执行时,它会返回一个 SIGCHLD 信号,因此它会调用 SIGCHLD 处理程序,但我想在这部分代码中而不是在处理程序?

我怎样才能做到这一点?阻止 SIGCHLD 信号?

最佳答案

试试这个:

   sigemptyset(&set);
sigaddset(&set, SIGCHLD);
s = pthread_sigmask(SIG_BLOCK, &set, NULL);

稍后,当您完成此操作后,请使用 SIG_UNBLOCK 取消阻止 sig 处理程序。

关于c - 避免在代码的一部分中调用 sigchld 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58494533/

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