问题
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?
回答1:
Looking at this doc, I would think multiplying tv_usec
by 1000 is sufficient to get tv_nsec
.
More important, I suspect is the source of the different structures: they could be filled by different clocks.
回答2:
In sys/time.h
there are two macros that do what you want:
TIMEVAL_TO_TIMESPEC(X, Y)
and
TIMESPEC_TO_TIMEVAL(X, Y)
See the docs here: http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html
来源:https://stackoverflow.com/questions/1618433/is-there-a-standard-way-to-convert-a-struct-timeval-into-a-struct-timespec