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

dic*_*oce 11 c unix posix timeval timespec

struct timeval用两个成员表示并及时,tv_sec(秒)和tv_usec(微秒).在这种表示中,tv_usec它本身不是绝对时间,它是亚秒的偏移量tv_sec.

struct timespec以相同的方式工作,除了微秒,它的offset(tv_nsec)以纳秒为单位存储.

问题是:有没有一种标准的方法来转换这两者?

kdg*_*ory 15

看看这个文档,我认为乘以tv_usec1000就足以得到tv_nsec.

更重要的是,我怀疑是不同结构的来源:它们可以由不同的时钟填充.

  • 不,因为`tv_usec`是一个微秒的偏移,保证小于100万,所以乘以1000给出的值小于10亿. (9认同)

Com*_*rHK 15

sys/time.h有两个宏你想要什么做的:

TIMEVAL_TO_TIMESPEC(X, Y)
Run Code Online (Sandbox Code Playgroud)

TIMESPEC_TO_TIMEVAL(X, Y)
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档:http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html