信號捕捉特性
- 進程正常運行時,默認PCB中有一個信號屏蔽字,假定為☆,它決定了進程自動屏蔽哪些信號。當注冊了某個信號捕捉函數,捕捉到該信號以后,要調用該函數。而該函數有可能執行很長時間,在這期間所屏蔽的信號不由☆來指定。而是用sa_mask來指定。調用完信號處理函數,再恢復為☆。
- XXX信號捕捉函數執行期間,XXX信號自動被屏蔽。
- 阻塞的常規信號不支持排隊,產生多次只記錄一次。(后32個實時信號支持排隊)
練習1:為某個信號設置捕捉函數???????????????????????????????????????????????????????????????????????????????? ???????????????????? 【sigaction1.c】練習2: 驗證在信號處理函數執行期間,該信號多次遞送,那么只在處理函數之行結束后,處理一次。? 【sigaction2.c】練習3:驗證sa_mask在捕捉函數執行期間的屏蔽作用。?????????????????????????????????????????????????????????? ?????? 【sigaction3.c】
內核實現信號捕捉過程:
?