请教高手linux编程的问题:如何实现毫秒级的延时?

alien75 2002-01-09 08:28:23
从所周知,sleep是秒延时,有没有毫秒级的延时函数?
我做一守护进程,用sleep没问题,为实现毫秒级就写了一个延时函数,代码如下:
delays(int timeout) //timeout的单位是毫秒
{
struct itimerval value,ovalue;
value.it_value.tv_sec = 0;
value.it_value.tv_usec = timeout*1000;
value.it_interval.tv_sec = 0;
value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &value, &ovalue);
pause();
}
但是一执行完pause就异常退出,没有执行delays的后续代码。如果放在普通程序中用就没问题,我估计是守护进程的原因,请问高手怎么办?或者用替换方法?
...全文
444 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
alien75 2002-01-09
  • 打赏
  • 举报
回复
已经找到另外的函数了,是usleep和nanosleep,示过还是谢谢你,给分。
Happyledian 2002-01-09
  • 打赏
  • 举报
回复
用select(null,null,null,null,tv)
好象
tv.tv_sec = 0;
tv.tv_usec = 1000;
用man select看看!呵呵...

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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