有没有将struct timeval转换为struct timespec的标准方法?

时间:2009-10-24 16:22:34

标签: c unix posix timeval timespec

struct timeval表示并及时与两个成员tv_sec(秒)和tv_usec(微秒)。在此表示中,tv_usec本身不是绝对时间,它是tv_sec的次秒偏移。

struct timespec的工作方式相同,只是它的偏移量(tv_nsec)不是微秒,而是以纳秒为单位存储。

问题是:有没有一种标准的方法可以在这两者之间进行转换?

2 个答案:

答案 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