1
当我设置一个短暂停时以setitimer
然后查询设定值(用getitimer
或其他setitimer
)在Linux 2.6.26系统(Debian的5.0.5),我得到一个价值高于我设置:setitimer在Linux四舍五入?
#include <sys/time.h>
#include <iostream>
int main() {
struct itimerval wanted, got;
wanted.it_value.tv_sec = 0;
wanted.it_value.tv_usec = 7000;
wanted.it_interval.tv_sec = 0;
wanted.it_interval.tv_usec = 0;
setitimer(ITIMER_VIRTUAL, &wanted, NULL);
getitimer(ITIMER_VIRTUAL, &got);
std::cerr << "we said: " << wanted.it_value.tv_usec << "\n"
<< "linux set: " << got.it_value.tv_usec << std::endl;
return 0;
}
回报:
we said: 7000
linux set: 12000
这是有问题的,因为我们使用报告为一些计算后剩余的时间,他们的方式过大,过。
这是一个已知的问题? (谷歌搜索没有奏效。)有没有人有一个很好的解决方法?