#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 进程号