逻辑
while()
{
block signal;
pselect();
unblock signal;
}
当信号被阻止时,我可以存储发送信号的进程ID吗?所以我在pselect完成它的工作并且信号被解锁后处理它们?
如果有更好的方法实现这一点,请有人指导我。
答案 0 :(得分:1)
阻塞的信号在解除阻塞后排队并传送。
如果标准信号(即没有实时信号)在被阻止时被传送到进程每个标准信号只有一个实例排队。
有关详细信息,请参阅man 7 signal
。
如果使用sigaction()
设置了信号处理程序,并且传入的sa_flags
成员struct sigaction
设置为SA_SIGINFO
,则可以导出发送信号的进程ID }。