关于linux下的signal函数的问题
这几天都在看一个高手些的一个贪吃蛇的代码,但是遇到了一个问题。非常不理解
void show()
{
signal(SIGALRM, show); //设置中断信号
showInformation();
showSnake();
refresh(); //刷新真实屏幕
}
不懂 signal(SIGALRM, show); 为什么要自己的调用自己,这样不就无止境的循环了吗?
请求高手解决
[解决办法]
signal(SIGALRM, show); // 只是设置信号处理函数不会调用
有些系统用signal设置信号处理函数后,如果收到信号,系统会把信号处理函数设置为默认值,这里作为补救措施重新设置信号处理函数。
详细的解释可以读APUE或者搜索“可靠信号处理”
[解决办法]
这个只是设置信号处理函数吧
[解决办法]