发布网友
共1个回答
热心网友
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void my_func(int sign_no)
{
if(sign_no==SIGINT)
printf("I have get SIGINT\n");
else if(sign_no==SIGTERM)
printf("I have get SIGQUIT\n");
}
int main()
{
printf("Waiting for signal SIGINT or SIGTERM \n ");
printf("process is %d\n ",getpid());
signal(SIGINT, my_func);
signal(SIGTERM, my_func);
while(1);
exit(0);
}
linux 平台就 用while阻塞就行
不知道你用的是什么平台?
追问Linux平台的现在已经调试好了,但是windows平台的不行,用了你上面代码在windows上面跑,SIGTERM测不出来,我用的是在一个命令行跑程序,另一个命令行使用taskkill杀死进程,但是得不到想要的输出。请大神帮一下,谢谢了。追答这就不知道了 我没windows 平台调试不了。