signal函数用于传送信号给指定的进程
signal定义函数 void (*signal(int signum,void (*handler)(int)))(int)
signal函数会依参数signum指定的信号编号来设置该信号的处理函数,当指定的信号到达时就会跳转到参数handler指定的函数执行。
如果参数handler不是函数指针,则必须是下列两个常数之一。
SIG_IGN:忽略参数signum指定的信号
SIG_DFL:将参数signum指定的信号重设为核心预设的信号处理方式。
附加:
#include
#include
#include
#include
void myfunc(int sign)
{
if(sign == SIGINT)
{
printf("hello world!\n");
}
if(sign == SIGQUIT)
{
printf("exit!\n");
exit(1);
}
}
int main()
{
pid_t pid;
int select;
pid = fork();
if(pid == 0)
{
signal(SIGINT,myfunc);
signal(SIGQUIT,myfunc);
pause();
}
if(pid > 0)
{
scanf("%d",&select);
if( select == 1)
{
kill(pid,SIGINT);
}
if(select == 2)
{
kill(pid,SIGQUIT);
}
}
}