免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3474 | 回复: 0
打印 上一主题 下一主题

alarm与timer_settime的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-17 12:33 |只看该作者 |倒序浏览
本帖最后由 hbmhalley 于 2011-12-17 12:35 编辑

我想搞一个计时器,由于alarm不够精准,于是找到了timer
但是 我希望在exec之后仍能超时,这点alarm可以做到,但timer却做不到,这是为什么?

  1. //dead.c
  2. // gcc dead.c -o dead
  3. int main () {
  4.         for (;;);
  5. }
复制代码

  1. //alrm.c
  2. // gcc alrm.c -o alrm -lrt
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <unistd.h>
  6. #include <signal.h>
  7. #include <time.h>

  8. int main () {
  9. #ifdef ALARM
  10.         alarm (1) ;
  11. #else
  12.         timer_t tid ;
  13.         timer_create (CLOCK_REALTIME , NULL , &tid) ;
  14.         struct itimerspec itimer ;
  15.         memset (&itimer , 0 , sizeof itimer) ;
  16.         itimer . it_value . tv_sec = 1 ;
  17.         itimer . it_value . tv_nsec = 0 ;
  18.         timer_settime (tid , 0 , &itimer , NULL) ;
  19. #endif
  20.         execl ("./noend" , "./dead" , NULL) ;
  21. }
复制代码
设置ALARM后,./alrm一秒后被中断,否则死循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP