当前位置: 技术问答>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 两行的顺序颠倒一下