#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 進程號