【问题标题】:Signal Handling in UnixUnix 中的信号处理
【发布时间】:2013-01-06 15:43:32
【问题描述】:

我正在学习 Unix 中的信号处理,但很难理解 sigprocmask() 中的 SIG_SETMASKo_set 是什么,它们的作用是什么?

我了解set 包含要阻止或取消阻止的信号列表,SIG_BLOCK 阻止列表中的信号,SIG_UNBLOCK 取消阻止它们。

sigprocmask(SIG_SETMASK,&set,& o_set);

【问题讨论】:

    标签: c unix signals


    【解决方案1】:

    Linux manpage 很好地解释了这一点。

    如果该参数不为空,则信号掩码的先前值存储在最后一个参数(旧集)中。

    SIG_SETMASK 设置当前信号集。我不确定对此还有什么要说的 - SIG_BLOCKSIG_UNBLOCK 将当前信号掩码与第二个参数结合起来,SIG_SETMASK 设置它而不考虑当前值。

    POSIX 是这样解释的:

    SIG_BLOCK
    结果集应是当前集和集指向的信号集的并集。 SIG_SETMASK
    结果集应该是set指向的信号集。
    SIG_UNBLOCK
    结果集应该是当前集和set指向的信号集的补集的交集。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 2016-03-31
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2017-05-06
    • 2023-03-17
    • 2019-08-04
    相关资源
    最近更新 更多