Linux下C的定时程序怎么写?我的定时时间比较长(几个小时),用sleep数值太大了

xwchena 2002-08-13 09:15:51
而且还要求定时时间要精确到秒。哪位有代码?
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
komantian 2002-08-13
  • 打赏
  • 举报
回复
24*60*60=86400
大吗?
这样写,sleep也许不大,不过alarm 就大了
例子:
main()
{
signal(SIGALRM, (void *)yourprocess);
alarm(yourtime);
for (;;){
sleep(1);
}
}
void * yourprocess()
{
if (yourcondition!=true){
signal(SIGALRM, (void *)yourprocess);
alarm(yourtime);
}else{
your process......
}
}
komantian 2002-08-13
  • 打赏
  • 举报
回复
如果是定时执行就用crontab,不过只能精确到分钟
step_by_step 2002-08-13
  • 打赏
  • 举报
回复
sleep完全可以胜任,我就是这麽用的。
pi1ot 2002-08-13
  • 打赏
  • 举报
回复
要只是定时执行用crontab算了.
solar 2002-08-13
  • 打赏
  • 举报
回复
只是sleep可能被信号中断,所以醒来时要判断一下是否真的到时间了;如果没到时间则计算出还要睡多久然后继续sleep
solar 2002-08-13
  • 打赏
  • 举报
回复
sleep可以的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧