2014-01-15 54 views
0

逻辑发送信号和pselect?

while() 
{ 

    block signal; 

    pselect(); 

    unblock signal; 

} 

虽然信号被阻断,我可以存储已经发送的信号中的进程ID?让我在pselect完成其工作并解除信号后处理它们?

如果有更好的方法实现这个可以有人引导我请。

回答

1

被阻塞的信号在解锁后排队并传递。

如果标准信号(即不是实时信号)在被阻塞时被传送到进程每个标准信号只有一个实例在排队

详情请参阅man 7 signal


如果该信号处理程序已经建立了使用sigaction()struct sigaction组传递给SA_SIGINFOsa_flags构件可以导出该发送的信号的进程ID。

详情请致电see man sigaction

+0

谢谢。如果信号是实时信号呢?例如用户定义的信号?虽然阻止我发送3-4信号?我怎样才能做到这一点?! –