当前位置: 技术问答>linux和unix
这个程序为什么 alarm 不起作用?
来源: 互联网 发布时间:2016-10-25
本文导语: 请问,这个程序为什么 alarm 不起作用,没有在1秒后结束进程? 并没有屏蔽SIGALRM 啊。ctrl+c 还是能结束程序的,说明键盘中断正常。为什么 alarm不起作用呢。 #include #include void handler(int sig){ while(1) write(STDE...
请问,这个程序为什么 alarm 不起作用,没有在1秒后结束进程?
并没有屏蔽SIGALRM 啊。ctrl+c 还是能结束程序的,说明键盘中断正常。为什么 alarm不起作用呢。
刚开始玩linus编程,。。。这么两行都搞不定,心里哇凉哇凉的
并没有屏蔽SIGALRM 啊。ctrl+c 还是能结束程序的,说明键盘中断正常。为什么 alarm不起作用呢。
#include
#include
void handler(int sig){
while(1)
write(STDERR_FILENO,"Hellon",6);
}
int main(){
struct sigaction act;
act.sa_handler= handler;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
sigaction(SIGUSR1,&act,NULL);
raise(SIGUSR1);
alarm(1);
return 0;
}
刚开始玩linus编程,。。。这么两行都搞不定,心里哇凉哇凉的
|
raise是向自己发送信号,你在信号处理函数里死循环了,没有退出,没有执行到alarm函数,当然alarm不起作用了。
|
把raise 跟alarm 两行的顺序颠倒一下
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。