1. 程式人生 > >linux下的C語言開發(訊號處理)

linux下的C語言開發(訊號處理)

                【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】

    訊號處理是linux程式的一個特色。用訊號處理來模擬作業系統的中斷功能,對於我們這些系統程式設計師來說是最好的一個選擇了。要想使用訊號處理功能,你要做的就是填寫一個訊號處理函式即可。一旦程序有待處理的訊號處理,那麼程序就會立即進行處理。

#include <stdio.h>#include <stdlib.h>#include <signal.h>int value = 0;void func(int sig){    printf("I get a signal!\n");    value = 1;}int main(){    signal(SIGINT, func);    while
(0 == value)        sleep(1);    return 0;}

    為了顯示linux對signal的處理流程,我們需要進行兩個步驟。第一,輸入gcc sig.c -o sig, 然後輸入./sig即可;第二則重啟一個console視窗,輸入ps -aux | grep sig, 在獲取sig的pid之後然後輸入kill -INT 2082, 我們即可得到如下的輸出。

[[email protected] fork]#./sigI get a signal![[email protected] fork]#