C语言信号处理程序

发布网友

我来回答

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 平台调试不了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com