LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 665|回复: 4

关于sleep() AND alrm()

[复制链接]
发表于 2004-1-18 23:02:06 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. int
  3. main(void)
  4. {
  5.      int timeleft;
  6.      printf("Now alarm 6 second\n");
  7.      alarm(6);
  8.      sleep (5);
  9.      timeleft=sleep(10);
  10.      printf("timeleft is %d\n",timeleft);
  11.      exit(0);
  12. }
  13. # ./a.out
  14. Now alarm 6 second
  15. 闹钟
  16. #
复制代码

能把timeleft打印出来吗?
发表于 2004-1-19 10:11:03 | 显示全部楼层
给进程一个信号,在信号处理程序中得到剩余时间值

试试看~~~
 楼主| 发表于 2004-1-19 15:45:08 | 显示全部楼层
想不出来,要是sleep()成功会返回0,我这样是错误的。最简单得法方法就是用算术减啦。。
发表于 2004-1-19 20:38:09 | 显示全部楼层
sleep()是用SIGALRM实现的。它的定时并不可靠。
可以用select()来精确返回时间。
 楼主| 发表于 2004-1-20 14:51:31 | 显示全部楼层
谢谢大家!!!!我去试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表