2014-01-15 53 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信號?我怎樣才能做到這一點?! –