struct timeval
表示并及时与两个成员tv_sec
(秒)和tv_usec
(微秒)。在此表示中,tv_usec
本身不是绝对时间,它是tv_sec
的次秒偏移。
struct timespec
的工作方式相同,只是它的偏移量(tv_nsec
)不是微秒,而是以纳秒为单位存储。
问题是:有没有一种标准的方法可以在这两者之间进行转换?
答案 0 :(得分:15)
关注this doc,我认为将tv_usec
乘以1000足以获得tv_nsec
。
更重要的是,我怀疑是不同结构的来源:它们可以由不同的时钟填充。
答案 1 :(得分:15)
在sys/time.h
中,有两个宏可以执行您想要的操作:
TIMEVAL_TO_TIMESPEC(X, Y)
和
TIMESPEC_TO_TIMEVAL(X, Y)
请参阅此处的文档:http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html