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

aupe中关于alarm的困惑

    来源: 互联网  发布时间:2016-04-27

    本文导语:  aupe中关于alarm返回值的描述如下:   每个进程只能有一个闹钟时间。如果在调用alarm时,以前已为该进程设置过闹钟时间, 而且它还没有超时,则该闹钟时间的余留值作为本次alarm函数调用的值返回。以前登记的闹 ...

aupe中关于alarm返回值的描述如下:
  每个进程只能有一个闹钟时间。如果在调用alarm时,以前已为该进程设置过闹钟时间,
而且它还没有超时,则该闹钟时间的余留值作为本次alarm函数调用的值返回。以前登记的闹
钟时间则被新值代换。
  如果有以前登记的尚未超过的闹钟时间,而且seconds值是0,则取消以前的闹钟时间,其
余留值仍作为函数的返回值。
问题是:我写了个小程序验证结果却是:返回上个alarm的总时间,而不是剩余时间。
例如:alarm(10);
     printf("time=%dn",alarm(5));
总是输出10
(以上只是说明问题,实际程序并非如此)
哪位大虾解释一下
最好附带个示例程序。


|



表头文件  #include
 
定义函数  unsigned int alarm(unsigned int seconds);
 
函数说明  alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。
 
返回值  返回之前闹钟的剩余秒数,如果之前未设闹钟则返回0。
 
范例  #include
#include
void handler() {
printf(“hellon”);
}
main()
{
int i;
signal(SIGALRM,handler);
alarm(5);
for(i=1;i

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • times的问题 和AUPE运行结果不同, 为何? 谢谢


  • 站内导航:


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

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

    浙ICP备11055608号-3