0
while()
{
block signal;
pselect();
unblock signal;
}
雖然信號被阻斷,我可以存儲已經發送的信號中的進程ID?讓我在pselect完成其工作並解除信號後處理它們?
如果有更好的方法實現這個可以有人引導我請。
while()
{
block signal;
pselect();
unblock signal;
}
雖然信號被阻斷,我可以存儲已經發送的信號中的進程ID?讓我在pselect完成其工作並解除信號後處理它們?
如果有更好的方法實現這個可以有人引導我請。
被阻塞的信號在解鎖後排隊並傳遞。
如果標準信號(即不是實時信號)在被阻塞時被傳送到進程每個標準信號只有一個實例在排隊。
詳情請參閱man 7 signal
。
如果該信號處理程序已經建立了使用sigaction()
在struct sigaction
組傳遞給SA_SIGINFO
的sa_flags
構件可以導出該發送的信號的進程ID。
詳情請致電see man sigaction
。
謝謝。如果信號是實時信號呢?例如用戶定義的信號?雖然阻止我發送3-4信號?我怎樣才能做到這一點?! –