gpt4 book ai didi

我可以检查未决信号并立即执行它们吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:48 25 4
gpt4 key购买 nike

我想做的是只处理代码中某些已知点的信号。所以在那些时候我会检查挂起的信号并立即执行它的处理程序。

我知道我可以使用 sigprocmask 来阻止信号,然后再解除阻止,但仍然如此,信号将在解除阻止后的任何时间点传送,这是我不想要的.我想在代码中的特定位置精确地执行信号处理程序。换句话说,我想让信号处理同步。

有没有可能实现我想要做的事情的方法?

最佳答案

您可以使用系统调用的 sigwait 系列获取任何待处理的阻塞信号。但是,不可能同时等待信号和其他类型的事件,如果您不想在 sigwait 中阻塞,您可以先使用 sigpending 检查是否有未决信号。

如果您的应用程序使用事件驱动设计,您通常会在一个运行循环中有多个 fd。对于这种情况,您应该改用写入 pipe 的信号处理程序。该信号将异步传递,但随后将作为另一个需要处理的 fd 出现在您的运行循环中。

关于我可以检查未决信号并立即执行它们吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330135/

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