書「高級編程在Unix環境」說:信號隊列和信號屏蔽
內核,除非他們支持實時擴展到POSIX.1
如果不排隊信號被阻塞的信號不止一次產生(產生的阻塞信號是不同類型的),它被設置在信號掩碼上。然後,在其他信號之前傳送與當前進程狀態相關的信號。
這裏,信號隊列和信號掩碼有什麼不同? 如果爲每種不同類型設置信號掩碼,這意味着內核知道什麼信號正在等待(因此,我認爲隊列和掩碼相同)。
而且,傳送信號一次?當同一類型的信號被多次傳送時,是不是這樣?另外,大多數UNIX系統不排隊信號意味着只有1個信號掩碼位可以在清除掩碼上設置?那麼,如果在這個過程中阻塞了不同類型的許多信號會發生什麼?什麼信號沒有設置?
沒有隊列。信號有待處理或未處理。一點。如果有一個隊列,可以在其中放入5個SIGINT實例,這與6或17個實例不同。 –
只能打開一個掩碼位? –
不,可以打開幾個位。 –