1. 程式人生 > >Unix中Signal訊號的不同

Unix中Signal訊號的不同

Unix系統signal函式的不同

  • (1)函式說明
    在signal函式中,有兩個形參,分別代表需要處理的訊號編號值和處理訊號函式的指標。它主要是用於前32種非實時訊號的處理,不支援訊號的傳遞資訊。但是由於使用簡單,易於理解,因此在許多場合被程式設計師使用。
  • 對於Unix系統來說,使用signal函式時,自定義處理訊號函式執行一次後失效,對該訊號的處理回到預設處理方式。下面以一個例子進行說明,例如一程式中使用signal(SIGQUIT, my_func)函式呼叫,其中my_func是自定義函式。應用程序收到SIGQUIT訊號時,會跳轉到自定義處理訊號函式my_func處執行,執行後訊號註冊函式my_func失效,對SIGQUIT訊號的處理回到作業系統的預設處理方式,當應用程序再次收到SIGQUIT訊號時,會按作業系統預設的處理方式進行處理(即不再執行my_func處理函式)。而在Linux系統中,signal函式已被改寫,由sigaction函式封裝實現,則不存在上述問題。