【发布时间】:2022-01-24 13:45:55
【问题描述】:
我可以使用
int clock_gettime(clockid_t clk_id, struct timespec *tp);
获取 CLOCK_REALTIME 和 CLOCK_MONOTONIC 分别调用哪个。
是否有可能通过 one 调用获得 both,因此结果是内核在我请求时对两者的最佳猜测?
背景:我需要同步两者以发现与 GPS 时间同步的 CLOCK_REALTIME 中的跳跃,我担心(不知道这是否是一种有效的恐惧)调用 clock_gettime() 两次会增加我的问题,因为我的两个电话之间可能会发生很多事情。
【问题讨论】:
-
我很想看到那些明显不同的值;我需要用时间戳标记测量数据,但如果测量从 GPS 不可用的位置开始,我想发现稍后进行的调整以重新排序数据。此外,在例如之后很长的隧道,CLOCK_REALTIME 可能会跳跃,而 CLOCK_MONOTONIC 不会。
-
@StephenKitt 我仍然很好奇输出会是什么样子
54:3234:3752 APM? -
好的,抱歉。我想在调用点 A 有一个值,告诉我 MONOTONIC 是 1000,而 REALTIME 是 1000000。下一次调用,我想看到 MONOTONIC 现在是 1005,而 REALTIME 是 1000006,所以我可以看到系统内部的想法现在是时候了,我可以发现任何涂抹或跳跃。我想用两个时间戳标记数据,这样即使我不总是能够补偿,我至少可以看到它。