信号其实相当于一个软中断,我们对信号的处理通常有忽略,按照系统默认处理,还有就是自己定义处理函数。
linux下的信号有很多种,可以用 kill -l 来查看,下面给出一个简单的信号处理的例子。
#include<stdio.h>
#include<signal.h>
void handler_sigint(int signo)
{
printf("recv SIGINT/n");
}
int main()
{
signal(SIGINT,handler_sigint);
while(1);
return 0;
}
signal函数是给信号SIGINT添加处理函数,当程序接收到SIGINT信号时,程序就会跳转到handler_sigint函数去执行,SIGINT信号是在运行这个程序时,用Ctrl+c传递给程序的,也可以用kill来传递,后面会介绍。