读书人

linux中在定时器信号的处理函数中如

发布时间: 2012-03-27 13:44:24 作者: rapoo

linux中,在定时器信号的处理函数中怎么结束整个程序的运行?
signal(SIGALRM, handler);


void hander(int sig)
{
...

if(...) exit(0);

...
}

在定时器信号的处理函数中使用exit函数退出程序后,结果导致终端崩溃,有没有其他办法在信号处理函数中终止整个程序的运行?

[解决办法]
你的程序此时在做什么
[解决办法]
信号处理函数里退出程序肯定是有问题的,信号处理函数执行完成后,程序还需要进入内核空间,然后才回到用户空间的

通过信号量等方式通知主线程,在主线程里exit吧

读书人网 >C语言

热点推荐