Linux 可靠地查找同一机器上两个时钟之间的偏移量

Linux 可靠地查找同一机器上两个时钟之间的偏移量,linux,time,posix,real-time,Linux,Time,Posix,Real Time,clock\u gettime(2)的Linux手册页很好地解释了clock\u REALTIME和clock\u monotic之间的含义差异。在任何给定的时间,这两个时钟都会被一些不同的偏移量所偏移。我想跟踪这个偏移量。一个简单的近似值是 struct timespec rtime, mtime; clock_gettime(CLOCK_REALTIME, &rtime); clock_gettime(CLOCK_MONOTONIC, &mtime); // subtr

clock\u gettime(2)
的Linux手册页很好地解释了
clock\u REALTIME
clock\u monotic
之间的含义差异。在任何给定的时间,这两个时钟都会被一些不同的偏移量所偏移。我想跟踪这个偏移量。一个简单的近似值是

struct timespec rtime, mtime;
clock_gettime(CLOCK_REALTIME, &rtime);   
clock_gettime(CLOCK_MONOTONIC, &mtime);
// subtract the timespecs here.
但这两个电话之间有一个不可预测的延迟。内核能否在单个“原子”操作中给我一个可靠的偏移估计


顺便说一句:我想《凤凰社》也需要同样的信息。但是那里的应答者似乎在回答一个不同的问题,所以我想我会用我自己的话来提问。

将返回有关系统时钟如何随先前的adjtime呼叫而变化的状态的信息。这可能不是你想要的,但它可能会为你提供足够或同等的信息,满足你的需求

我认为你的回答是正确的,因为答案是否定的。我怀疑答案可能真的没什么。好吧,Linux完全是开源代码。因此,从理论上讲,我们可以创建一个内核模块或修改内核,以获得所需的任何信息。但我怀疑这是你或大多数人想要的方式,我不确定这是否值得在adjtimex上付出努力。它甚至可能不是内核模块本身,只是对vdso()的更改。这将超过我的需求,但也许是一个有趣的极客项目。