跳轉到內容

C++ 程式設計/程式碼/標準 C 庫/函式/signal

來自 Wikibooks,開放書籍,構建開放世界
語法
#include <csignal>
void (*signal( int sig, void (*handler)(int)) )(int)

signal() 函式接受兩個引數 - 第一個引數是訊號識別符號,第二個引數是指向訊號處理函式的函式指標,該函式指標接受一個引數。signal 的返回值是指向先前處理函式的函式指標(如果更改訊號處理函式時出錯,則為 SIG_ERR)。

預設情況下,大多數引發的訊號都由處理程式 SIG_DFL(通常會關閉程式的預設訊號處理程式)或 SIG_IGN(忽略訊號並繼續程式執行)處理。

當您指定自定義處理程式並引發訊號時,訊號處理程式會恢復為預設值。

雖然訊號處理程式已被 throwcatch 取代,但某些系統可能仍然要求您使用這些函式來處理某些重要事件。例如,基於 Unix 的系統上的 SIGTERM 訊號表示程式應儘快終止。

注意
Solaris 中的標準訊號列表
SIGHUP,SIGINT,SIGQUIT,SIGILL,SIGTRAP,SIGABRT,SIGEMT,SIGFPE,SIGKILL,SIGBUS,SIGSEGV,SIGSYS,SIGPIPE,SIGALRM,SIGTERM,SIGUSR1,SIGUSR2,SIGCHLD,SIGPWR,SIGWINCH,SIGURG,SIGIO,SIGSTOP,SIGTSTP,SIGCONT,SIGTTIN,SIGTTOU,SIGVTALRM,SIGPROF,SIGXCPU,SIGXFSZ,SIGWAITING,SIGLWP,SIGFREEZE,SIGTHAW,SIGCANCEL,SIGLOST

相關主題
raise
華夏公益教科書