1 timespec(3HEAD) Headers timespec(3HEAD)
2
3 NAME
4 timespec, timeval, TIMESPEC_TO_TIMEVAL, TIMEVAL_TO_TIMESPEC - time
5 structures and conversion
6
7 SYNOPSIS
8 #include <sys/time.h>
9
10 void
11 TIMESPEC_TO_TIMEVAL(struct timeval *tv, const struct timespec *ts);
12
13 void
14 TIMEVAL_TO_TIMESPEC(const struct timeval *tv, struct timespec *ts);
15
16 DESCRIPTION
17 The timeval and timespec structures are declared in the <time.h> and
18 <sys/time.h> headers respectively:
19
20 typedef struct timespec {
21 time_t tv_sec; /* seconds */
22 long tv_nsec; /* and nanoseconds */
23 } timespec_t;
24
25 struct timeval {
26 time_t tv_sec; /* seconds */
27 suseconds_t tv_usec; /* and microseconds */
28 };
29
30 In both cases, the tv_sec member represents elapsed time in whole
31 seconds. The tv_nsec and tv_usec members represent the rest of the
32 elapsed time in nanoseconds and microseconds respectively, depending on
33 the structure.
34
35 The TIMEVAL_TO_TIMESPEC macro can be used to convert a struct timeval
36 structure to a struct timespec structure, while the TIMESPEC_TO_TIMEVAL
37 macro works in the opposite direction.
38
39 When converting from a struct timespec to a struct timeval structure, the
40 tv_nsec member is truncated, losing precision. When converting from a
41 struct timeval to a struct timespec structure, the tv_usec member is
42 multiplied by 1000 to reach the precision of the target structure. The
43 tv_sec member is always preserved, no matter which conversion is
44 performed.
45
46 Note that the TIMEVAL_TO_TIMESPEC and TIMESPEC_TO_TIMEVAL macros are non-
47 standard but are commonly found on UNIX and UNIX-like systems.
48
49 INTERFACE STABILITY
50 Committed
51
52 MT-LEVEL
53 MT-Safe
54
55 SEE ALSO
56 time.h(3HEAD)
57
58 illumos September 6, 2020 illumos