gpt4 book ai didi

android - CLOCK_BOOTTIME 返回的时间不是单调的

转载 作者:行者123 更新时间:2023-11-29 01:38:56 26 4
gpt4 key购买 nike

在我的项目中,我遇到了一个奇怪的问题。在我的设备上,下面的代码返回“测试失败”消息。有时这会立即发生,有时会在短时间内发生,但总是会发生。

int main()
{
while(true)
{
static unsigned long long previous;
timespec time;
int ret = clock_gettime(CLOCK_BOOTTIME, &time);
if(0 != ret)
{
return 1;
}

unsigned long long current = time.tv_sec * 1000000000llu;
current += time.tv_nsec;

if(current < previous)
{
std::cerr << "test failed. time stepped back." << std::endl;
return 1;
}
previous = current;

}
return 0;
}

这段代码可能有什么问题?在 android 4.2.2 上测试。

最佳答案

unsigned long long current = time.tv_sec * 1000000000llu;

tv_sec 是 32 位宽。在乘法之前,您必须将其转换为 unsigned long long。

关于android - CLOCK_BOOTTIME 返回的时间不是单调的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26057479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com