2011-06-09 101 views
0

我學的信號處理,我有一個關於返回信號的問題:信號()的返回類型

void (*sighandler_t)(int); 

我知道這是一個指向信號處理器的先前的功能,但我不不知道參數「(int)」的含義。

非常感謝!

+0

作爲,注意'sighandler_t'不是一個標準類型的名稱,應該從來沒有在代碼中使用。這是不安全的,因爲你不能依賴它,但是你也不能自己定義它,因爲系統頭文件可能會定義它。相反,總是寫出完整的類型或者像'my_sighandler'一樣定義自己的名字。 – 2011-06-09 01:45:42

回答

4

對信號處理程序的參數int是導致處理程序被調用的信號的編號。如果您有多個信號連接到相同的信號處理函數,這非常有用。

1

信號處理函數具有您發佈的簽名。當你的程序收到一個信號時,他的系統會調用你的信號處理程序,並將它作爲參數處理,這樣你就可以擁有一個用於多種信號類型的通用處理程序。

2

(int)是類型的一部分; sighandler_t類型是指向返回void並將int作爲參數的函數的指針。