逻辑
while()
{
block signal;
pselect();
unblock signal;
}
当信号被阻塞时,我可以存储发送信号的进程 ID 吗?以便我在 pselect 完成工作并且信号畅通后处理它们?
如果有更好的方法实现这一点,请有人指导我。
最佳答案
被阻塞的信号在被解除阻塞后被排队并传递。
如果标准信号(不是实时信号)在被阻塞时被传送到进程,每个标准信号只有一个实例排队。
详情请见man 7 signal
.
如果已使用 sigaction()
设置了信号处理程序,则可以导出发送信号的进程 ID将传入的 struct sigaction
的 sa_flags
成员设置为 SA_SIGINFO
。
详情请see man sigaction
.
关于c - 发送信号和 pselect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136693/