Unix 被遮罩挡住的信号

Unix 被遮罩挡住的信号,unix,signals,Unix,Signals,我怀疑当SIGALRM信号被阻塞时会发生什么,它是否进入挂起状态并在解除阻塞后发送,还是丢失?SIGALRM处于挂起状态,并将在解除阻塞后立即发送 阻塞信号(SIG_块)保持挂起状态,直到: 通过解除阻止并具有默认(SIG_DFL或“未捕获”)处置或用户提供的(“捕获”)处置,如通过struct sigaction的sa_处理程序交付 已接受、被接受或接受,意味着无需进一步操作即可将其从挂起信号集中移除 通过将其配置更改为SIG_IGN(“忽略”)而丢弃。已经被忽略的信号 传统的UNIX信号通常

我怀疑当SIGALRM信号被阻塞时会发生什么,它是否进入挂起状态并在解除阻塞后发送,还是丢失?

SIGALRM处于挂起状态,并将在解除阻塞后立即发送

阻塞信号(SIG_块)保持挂起状态,直到:

  • 通过解除阻止并具有默认(SIG_DFL或“未捕获”)处置或用户提供的(“捕获”)处置,如通过
    struct sigaction
    sa_处理程序
    交付
  • 已接受、被接受或接受,意味着无需进一步操作即可将其从挂起信号集中移除
  • 通过将其配置更改为SIG_IGN(“忽略”)而丢弃。已经被忽略的信号
  • 传统的UNIX信号通常不排队,因此一次只能有一个给定类型的信号挂起,随后生成的相同类型的信号将丢失

    (另一方面,实现选择信号发送和接收的顺序,例如,始终在发送或接收编号较高的信号之前发送或接收编号较低的信号。这意味着,如果其他信号已准备好发送,则可能不会首先发送新的未阻塞信号。但是,在实践中,它将立即发送。)立即地。)