我學的信號處理,我有一個關於返回信號的問題:信號()的返回類型
void (*sighandler_t)(int);
我知道這是一個指向信號處理器的先前的功能,但我不不知道參數「(int)」的含義。
非常感謝!
我學的信號處理,我有一個關於返回信號的問題:信號()的返回類型
void (*sighandler_t)(int);
我知道這是一個指向信號處理器的先前的功能,但我不不知道參數「(int)」的含義。
非常感謝!
對信號處理程序的參數int
是導致處理程序被調用的信號的編號。如果您有多個信號連接到相同的信號處理函數,這非常有用。
信號處理函數具有您發佈的簽名。當你的程序收到一個信號時,他的系統會調用你的信號處理程序,並將它作爲參數處理,這樣你就可以擁有一個用於多種信號類型的通用處理程序。
(int)
是類型的一部分; sighandler_t
類型是指向返回void
並將int
作爲參數的函數的指針。
這不完全是指向前一個函數的指針。它是一種函數指針的聲明。
該指針可用於任何具有void返回類型和int參數的函數。
閱讀更多有關此語法如何一邊在這裏工作
作爲,注意'sighandler_t'不是一個標準類型的名稱,應該從來沒有在代碼中使用。這是不安全的,因爲你不能依賴它,但是你也不能自己定義它,因爲系統頭文件可能會定義它。相反,總是寫出完整的類型或者像'my_sighandler'一樣定義自己的名字。 – 2011-06-09 01:45:42