当前位置:  技术问答>linux和unix

alarm() 和 signal()的问题

    来源: 互联网  发布时间:2017-01-08

    本文导语:  程序如下,这个程序为什么没能捕捉到signal handler呢??请运行一下,谢谢各位大神 /** Author : kotrue    * Tm&Add : 22:54:00 10/16/2011 in USTB   * Notes  : non-reentrant functions.   */ #include  #include  #include  #include  ...

程序如下,这个程序为什么没能捕捉到signal handler呢??请运行一下,谢谢各位大神

/** Author : kotrue 
  * Tm&Add : 22:54:00 10/16/2011 in USTB
  * Notes  : non-reentrant functions.
  */

#include 
#include 
#include 
#include 

void signal_handler(int signum);

// use static data structure.
static char str[20];

int main()
{
strcpy(str, "n");
signal(SIGALRM, signal_handler);
alarm(1);
while(1)
{
printf("%s", str);
strcpy(str, "hello worldn");
strcpy(str, "WWWWWWWWWWWn");
alarm(1);
}
return 0;
}

void signal_handler(int signum)
{
printf("%s", str);
alarm(1);
}

|
alarm不可循环使用。在上一个alarm的时间没到就调用下一个alarm。则上一个alarm被打断,并返回剩余时间。


|
你while设置的alarm(1)还没来得及超时,就再次被alarm(1)打断重新设置成超时成1s,所以你的程序是alarm不断地被重新设置,却一直没有超时,所以没有捕捉到signal handler

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • larm 时间已经过期(alarm<jiffies)是什么意思?
  • linux 下多线程 每个线程能否使用alarm来处理,信号是否会乱呢?
  • 简易定时闹铃工具 Alarm Clock
  • 用alarm和pause来实现sleep:分不够可在加
  • 这个程序为什么 alarm 不起作用?
  • 我想找到alarm.c这个文件 但不知道怎么查找
  • 需要几分钟或半个小时或一个小时执行,定时用alarm还是sleep好?
  • aupe中关于alarm的困惑
  • socket tcp 关于 alarm() 和 recv() ?
  • 如何用alarm实现每隔一段时间显示不同的内容?
  • alarm中关闭了socketfd,但是recvfrom无法知道
  • 请问为什么alarm失去作用?
  • alarm发闹铃信号,但只会执行一次.
  • 为什么msgrcv和 ALARM不能共同调用?急在线等。。。
  • 为什么我在alarm信号里设置信号屏蔽就不好用呢,求解答
  • 如何用系统调用实现每秒钟显示一次系统时钟,可以用getitimer,setitimer,alarm?
  • 定时器编程,alarm clock
  • alarm的响应线程是谁?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3