signal.h

signal.hC標準函式館中的信號處理部分, 定義了程式執行時如何處理不同的信號。信號用作進程間通信, 報告異常行為(如除零)、用戶的一些按鍵組合(如同時按下Ctrl與C鍵,產生信號SIGINT)。

介紹,signal,raise,

介紹

C++中的對應頭檔案是csignal。
頭檔案<signal.h>中提供了一些用於處理程式運行期間所引發的異常條件的功能,如處理來源於外部的中斷信號或程式執行期間出現的錯誤等事件。

signal

#include <signal.h>
void (*signal(int sig, void (*handler)(int)))(int);
signal()用於確定以後當信號sig出現時的處理方法。如果handler的值是SIG_DFL,那么就採用實現定義的預設行為;如果handler的值是SIG_IGN,那么就忽略該信號;否則,調用handler所指向的函式(參數為信號類型)。有效的信號包括:
SIGABRT
異常終止,如調用abort()。
SIGFPE
算術運算出錯,如除數為0或溢出。
SIGILL
非法函式映象,如非法指令。
SIGINT
互動式信號,如中斷。
SIGSEGV
非法訪問存儲器,如訪問不存在的記憶體單元。
SIGTERM
傳送給本程式的終止請求信號。
signal()返回信號sig原來的handler;如果出錯,則返回SIG_ERR。
當隨後出現信號sig時,就中斷正在執行的操作,轉而執行信號處理函式(*handler)(sig)。如果從信號處理程式中返回,則從中斷的位置繼續執行。
信號的初始狀態由實現定義。

raise

#include <signal.h>
int raise(int sig);
向程式傳送信號sig。如果傳送不成功,就返回一個非0值。

相關詞條

熱門詞條

聯絡我們