C 標準庫 – <signal.h>
C 標準庫 - <signal.h>
簡介
signal.h 標頭檔案定義了一個變數型別 sig_atomic_t、兩個函式呼叫和一些巨集來處理程式執行期間報告的不同訊號。
庫變數
下面是標頭檔案 signal.h 中定義的變數型別:
序號 | 變數 & 描述 |
---|---|
1 | sig_atomic_t 這是 int 型別,在訊號處理程式中作為變數使用。它是一個物件的整數型別,該物件可以作為一個原子實體訪問,即使存在非同步訊號時,該物件可以作為一個原子實體訪問。 |
庫巨集
下面是標頭檔案 signal.h 中定義的巨集,這些巨集將在下列兩個函式中使用。SIG_ 巨集與 signal 函式一起使用來定義訊號的功能。
序號 | 巨集 & 描述 |
---|---|
1 | SIG_DFL 預設的訊號處理程式。 |
2 | SIG_ERR 表示一個訊號錯誤。 |
3 | SIG_IGN 忽視訊號。 |
SIG 巨集用於表示以下各種條件的訊號碼:
序號 | 巨集 & 描述 |
---|---|
1 | SIGABRT 程式異常終止。 |
2 | SIGFPE 算術運算出錯,如除數為 0 或溢位。 |
3 | SIGILL 非法函式映象,如非法指令。 |
4 | SIGINT 中斷訊號,如 ctrl-C。 |
5 | SIGSEGV 非法訪問儲存器,如訪問不存在的記憶體單元。 |
6 | SIGTERM 傳送給本程式的終止請求訊號。 |
庫函式
下面是標頭檔案 signal.h 中定義的函式:
序號 | 函式 & 描述 |
---|---|
1 | void (*signal(int sig, void (*func)(int)))(int) 該函式設定一個函式來處理訊號,即訊號處理程式。 |
2 | int raise(int sig) 該函式會促使生成訊號 sig。sig 引數與 SIG 巨集相容。 |