1. 程式人生 > >(三十)訊號——訊號產生原因以及訊號處理行為的簡介

(三十)訊號——訊號產生原因以及訊號處理行為的簡介

1) SIGHUP:  當用戶退出shell時,由該shell啟動的所有程序將收到這個訊號,預設動作為終止程序
2)SIGINT: 當用戶按下了< Ctrl+C>組合鍵時,使用者終端向正在執行中的由該終端啟動的程式發出此訊號。預設動 作為終止里程。
3)SIGQUIT:  當用戶按下< ctrl+>組合鍵時產生該訊號,使用者終端向正在執行中的由該終端啟動的程式發出些信
號。預設動作為終止程序。
4)SIGILL: CPU檢測到某程序執行了非法指令。預設動作為終止程序併產生core檔案
5)SIGTRAP: 該訊號由斷點指令或其他 trap指令產生。預設動作為終止里程 併產生core檔案。
6 ) SIGABRT: 呼叫abort函式時產生該訊號。預設動作為終止程序併產生core檔案。
7)SIGBUS: 非法訪問記憶體地址,包括記憶體對齊出錯,預設動作為終止程序併產生core檔案。
8)SIGFPE: 在發生致命的運算錯誤時發出。不僅包括浮點運算錯誤,還包括溢位及除數為0等所有的演算法錯誤。預設動作為終止程序併產生core檔案。
9)SIGKILL: 無條件終止程序。本訊號不能被忽略,處理和阻塞。預設動作為終止程序。它向系統管理員提供了可以殺死任何程序的方法。
10)SIGUSE1: 使用者定義 的訊號。即程式設計師可以在程式中定義並使用該訊號。預設動作為終止程序。
11)SIGSEGV: 指示程序進行了無效記憶體訪問。預設動作為終止程序併產生core檔案。
12)SIGUSR2: 這是另外一個使用者自定義訊號 ,程式設計師可以在程式中定義 並使用該訊號。預設動作為終止程序。1
13)SIGPIPE: Broken pipe向一個沒有讀端的管道寫資料。預設動作為終止程序。
14) SIGALRM: 定時器超時,超時的時間 由系統呼叫alarm設定。預設動作為終止程序。
15)SIGTERM: 程式結束訊號,與SIGKILL不同的是,該訊號可以被阻塞和終止。通常用來要示程式正常退出。執行shell命令Kill時,預設產生這個訊號。預設動作為終止程序。
16)SIGCHLD: 子程序結束時,父程序會收到這個訊號。預設動作為忽略這個訊號。
17)SIGCONT: 停止程序的執行。訊號不能被忽略,處理和阻塞。預設動作為終止程序。
18)SIGTTIN: 後臺程序讀終端控制檯。預設動作為暫停程序。
19)SIGTSTP: 停止程序的執行。按下< ctrl+z>組合鍵時發出這個訊號。預設動作為暫停程序。
21)SIGTTOU: 該訊號類似於SIGTTIN,在後臺程序要向終端輸出資料時發生。預設動作為暫停程序。
22)SIGURG: 套接字上有緊急資料時,向當前正在執行的程序發出些訊號,報告有緊急資料到達。如網路帶外資料到達,預設動作為忽略該訊號。
23)SIGXFSZ: 程序執行時間超過了分配給該程序的CPU時間 ,系統產生該訊號併發送給該程序。預設動作為終止程序。
24)SIGXFSZ: 超過檔案的最大長度設定。預設動作為終止程序。
25)SIGVTALRM: 虛擬時鐘超時時產生該訊號。類似於SIGALRM,但是該訊號只計算該程序佔用CPU的使用時間。預設動作為終止程序。
26)SGIPROF: 類似於SIGVTALRM,它不公包括該程序佔用CPU時間還包括執行系統呼叫時間。預設動作為終止程序。
27)SIGWINCH: 視窗變化大小時發出。預設動作為忽略該訊號。
28)SIGIO: 此訊號向程序指示發出了一個非同步IO事件。預設動作為忽略。
29)SIGPWR: 關機。預設動作為終止程序。
30)SIGSYS: 無效的系統呼叫。預設動作為終止程序併產生core檔案。