0

我只是在学习如何使用clock_getres(网络上几乎没有很好的文档)。我的代码如下所示:

timespec now;
clock_getres(CLOCK_REALTIME,&now);
std::cout<<statut_cast<int>(now.tv_sec)<<","<<static_cast<int>(now.tv_nsec)<<std::endl;

无论我何时运行此代码,输出始终为 0,1 谁能解释为什么这不起作用?

4

2 回答 2

6

用于clock_gettime返回当前时间,而不是clock_getres返回时钟的分辨率。

http://pubs.opengroup.org/onlinepubs/009604599/functions/clock_getres.html

clock_getres()函数应返回任何时钟的分辨率

该函数应返回指定时钟clock_gettime()的当前值, 。tpclock_id

于 2012-06-20T19:33:18.833 回答
2

这是正确的行为 - 输出是0,1因为您试图获得分辨率的时钟具有纳秒分辨率。因此now.tv_nsec=1now.tv_sec=0。如果它没有纳秒分辨率,则输出将是0,0.

于 2012-06-20T19:42:13.040 回答