/**
* @file demo6.c
* @synopsis
** #inclue
* typeof void (*sighandler_t)(int);
* sighandler_t signal(int signum,sighandler_t handler);
* * @author mrclimb
* @version 1.1.0
* @date 2012-05-21
*/#include
#include
#include
#include
#define inputlen 100
int main(int argc, char **argv)
else
}while(strncmp(input,"quit",4) != 0);
return 0;
}void siginthandler(int sigint)
void sigquithandler(int sigquit)
/***
*************result 分析*****************
** 當程式a.out 時
* 1:正常輸入非exit,則正常輸出。
* 2: 當按下 ^c 時程式並沒有退出,說明這裡的訊號被 signal 捕捉,同時呼叫相應的函式列印結果
* 3: 當按下 ^'\' 同上的結果(說明不是老鼠夾)
* 4: 當連續按 ^c^c^c^c 相同訊號時這裡只接收乙個該訊號
* 5: 當連續按 ^'\'^'\'^'\' 也同上只接收乙個訊號
* 6: 當按 ^c^'\' or ^'\'^c 時候會出現不同結果,只處理後按的那個訊號(連續不同訊號,優先順序處理最後乙個,哪個訊號
* 在後誰優先順序高)
* 7: 當按hello^c 時字元並沒有輸出來,而是捕捉訊號,列印捕捉呼叫的函式
* 訊號與輸入交替進行時會把輸入給清掉
* (糸統呼叫執行過程中來訊號)輸入阻塞過程中來訊號
** // x訊號處理過程中又來x訊號處理方式
// x 訊號處理過程中又來了y訊號處理方式
****************************************/
用signal函式捕捉訊號SIGINT
用系統呼叫函式fork 建立兩個子程序,再用系統呼叫函式signal 讓父程序捕捉訊號sigint 用kill命令來觸發 當捕捉到中斷訊號後,父程序用系統呼叫函式kill 向兩個子程序發出訊號,子程序捕捉到父程序發來的訊號後,分別輸出下列資訊後終止 child process 1 is killed...
Signal訊號處理
在goahead的linux模組main.c 檔案中,main函式中出現了以下三個語句 signal sigpipe,sig ign signal sigint,siginthandler signal sigterm,siginthandler 這三條語句與網路訊號有關。在這裡做咯記錄。1.訊號概...
signal訊號總結
signaldescription sigabrt 由呼叫abort函式產生,程序非正常退出 sigalrm 用alarm函式設定的timer超時或setitimer函式設定的interval timer超時 sigbus 某種特定的硬體異常,通常由記憶體訪問引起 sigcancel 由solari...