请linux编程高手进来看一看:怎么实现毫秒级的延时?
从所周知,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的后续代码。如果放在普通程序中用就没问题,我估计是守护进程的原因,请问高手怎么办?或者用替换方法?