我在C中的程序非常简单,让我在互联网上应对它:
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void sigint_handler(int dummy)
{
printf("SIGINT HANDLED!\n");
signal(SIGINT,sigint_handler);
}
int main(){
signal(SIGINT,sigint_handler);
kill(getpid(),SIGINT);
sleep(1);
return 0;
}
我的问题是,这条线做了什么?
signal(SIGINT,sigint_handler);
甚至有必要吗?没有这一行,这个程序就可以正常运行,没有任何变化。
答案 0 :(得分:0)
signal(SIGINT,sigint_handler);
告诉计算机下次程序收到SIGINT时调用sigint_handler
。