linux信號簡單編程

#include<stdio.h>
#include<stdlib.h>
#include<signal.h>

void getsign(int signo)
{
        if (signo == SIGUSR1)
                printf("recevied SIGUSR1\n");
        else if (signo == SIGUSR2)
                printf("received SIGUSR2\n");
        else
                printf("received signal %d\n",signo);
    

}
int main()
{
        if (signal(SIGUSR1, getsign) == SIG_ERR)
                printf("Can't catch SIGUSR1");
        if (signal(SIGUSR2, getsign) == SIG_ERR)
                printf("Can't catch SIGUSR2");
        for(;;)
        pause();
        return 0;    
}

該程序是使用兩個自定義signal完成的

gcc signtest.c -o signtest

#signtest

#[1]   進程號

#kill -SIGUSR1 進程號

#recevied SIGUSR1

#kill -SIGUSR2 進程號

#recevied SIGUSR2

最後終止進程

#kill -9 進程號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章