1. 程式人生 > >作業系統 — 捕捉訊號

作業系統 — 捕捉訊號


如果訊號的處理動作是終止程序,則程序終止,pause函式沒有機會返回; 如果訊號的處理動作是忽略,則程序進行處於掛起狀態,pause不返回; 如果訊號的處理動作是捕捉,則呼叫了訊號處理函式之後pause返回-1現在明白了sig_alrm的作用了吧?? 2.為什麼要在Mysleep函式返回前要回復SIGALRM訊號原來的sigaction?我們想想想不恢復原來的訊號處理方式會發生什麼?  當你的訊號的處理函式改變之後,那麼以後所有用到這個訊號的處理函式的地方都變成了sig_alrm,這樣很明顯很不合理! 所以我們需要將SIGALRM訊號的處理函式改回去. 讓它的作用域只有這個mysleep裡面.