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

alarm发闹铃信号,但只会执行一次.

    来源: 互联网  发布时间:2016-08-11

    本文导语:  今天测试下alarm函数,但发现它只会执行一次.. 代码如下: #include  //所需发送信号头文件 #include               #include  #include  static void UseAlarm(int sig); int main(){ int i = 0; signal(SIGALRM,UseAlarm);     //信号闹...

今天测试下alarm函数,但发现它只会执行一次..
代码如下:
#include 
//所需发送信号头文件
#include              
#include 
#include 

static void UseAlarm(int sig);

int main(){
int i = 0;
signal(SIGALRM,UseAlarm);     //信号闹钟处理
alarm(1);  //设置信号闹钟,1s 给目前进程发送一个SIGALRM信号 
while(1){
   i++;
   printf("%d.testn",i);
   pause();
        }            
    return 0;
}

//信号闹钟处理
static void UseAlarm(int sig)
{
printf("SIGALRM sign!!!n");
}

测试输出:只会输出一次"SIGALRM sign"
说明该信号只发送了一次,但按说明应该是只要我不取消闹铃信号,就会一直发的.
为什么我这里它指挥发送一次呢???//


|
man里说:

alarm() arranges for a SIGALRM signal to be delivered to the process in seconds seconds.

意思是只设定一个信号发送,不知道你从哪看到的说会一直发送。

|
应该用setitimer(ITIMER_REAL, &itv, &oldtv);

|
你只发送了一次信号

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












  • 相关文章推荐
  • 需要几分钟或半个小时或一个小时执行,定时用alarm还是sleep好?
  • larm 时间已经过期(alarm<jiffies)是什么意思?
  • alarm() 和 signal()的问题
  • 请教一个alarm(0)的问题
  • 用alarm和pause来实现sleep:分不够可在加
  • 这个程序为什么 alarm 不起作用?
  • Alarm定时小问题
  • 我想找到alarm.c这个文件 但不知道怎么查找
  • alarm() signal()的问题??
  • aupe中关于alarm的困惑
  • socket tcp 关于 alarm() 和 recv() ?
  • 如何用alarm实现每隔一段时间显示不同的内容?
  • alarm中关闭了socketfd,但是recvfrom无法知道
  • 请问为什么alarm失去作用?
  • alarm的问题
  • 为什么msgrcv和 ALARM不能共同调用?急在线等。。。
  • 关于 signal alarm pause
  • 如何用系统调用实现每秒钟显示一次系统时钟,可以用getitimer,setitimer,alarm?
  • 关于accept阻塞和alarm闹钟问题
  • 定时器编程,alarm clock
  • 关于循环触发alarm调用heandler的问题,谢谢指点,解决立马结贴!


  • 站内导航:


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

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

    浙ICP备11055608号-3