我正在學習APUE 10.3信號,只是混淆了SIG_ERR
,SIG_DFL
和SIG_IGN
的定義。這裏的定義是:APUE 10.3信號:指針投射問題。
#define SIG_ERR (void (*)())-1
#define SIG_DFL (void (*)())0
#define SIG_IGN (void (*)())1
這裏是信號函數原型:
void (*signal(int signo, void (*func)(int)))(int)
當我們調用signal(signo, SIG_DFL)
,爲什麼會存在,因爲第二個參數沒有函數失配問題,應該是void (*)(int))
,然而,是什麼我們提供的SIG_DFL
是(void (*)())
,void (*)(int))
和(void (*)())
的類型?
感謝所有球員的幫助。請讓我知道它的證據嗎?我的意思是我能夠學習它的書籍,文檔或規格? – kevin
我添加了規格 – FreeSalad