我只是在学习如何使用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 谁能解释为什么这不起作用?
用于clock_gettime
返回当前时间,而不是clock_getres
返回时钟的分辨率。
http://pubs.opengroup.org/onlinepubs/009604599/functions/clock_getres.html:
该
clock_getres()
函数应返回任何时钟的分辨率。该函数应返回指定时钟
clock_gettime()
的当前值, 。tp
clock_id
这是正确的行为 - 输出是0,1
因为您试图获得分辨率的时钟具有纳秒分辨率。因此now.tv_nsec=1
和now.tv_sec=0
。如果它没有纳秒分辨率,则输出将是0,0
.