是否有将 struct timeval 转换为 struct timespec 的标准方法?
struct timeval
表示具有两个成员的即时时间:tv_sec
(秒)和 tv_usec
(微秒)。在此表示中,tv_usec
本身并不是绝对时间,它是 tv_sec
的亚秒偏移量。
struct timespec
的工作方式相同,只不过它的偏移量 (tv_nsec
) 以纳秒为单位存储,而不是微秒。
问题是:是否有一种标准方法可以在这两者之间进行转换?
struct timeval
represents and instant in time with two members, tv_sec
(seconds) and tv_usec
(microseconds). In this representation, tv_usec
is not by itself an absolute time it is a sub second offset off of tv_sec
.
struct timespec
works the same way except that instead of microseconds it's offset (tv_nsec
) is stored in nanosecond units.
The question is: Is there a standard way to convert between these two?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看看这个文档,我想乘以
tv_usec
乘以 1000 就足以获得tv_nsec
。更重要的是,我怀疑是不同结构的来源:它们可以由不同的时钟填充。
Looking at this doc, I would think multiplying
tv_usec
by 1000 is sufficient to gettv_nsec
.More important, I suspect is the source of the different structures: they could be filled by different clocks.
在 sys/time.h 中有两个宏可以执行您想要的操作:
请
参阅此处的文档:http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html
In
sys/time.h
there are two macros that do what you want:and
See the docs here: http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html