timespec
From cppreference.com
C
Concurrency support (C11)
Date and time utilities
Functions
Time manipulation
(C11)
(C23)
Format conversions
(deprecated in C23)(C11)
(deprecated in C23)(C11)
(C95)
(C23)(C11)
(C23)(C11)
Constants
Types
timespec
(C11)
Defined in header
<time.h>
struct timespec;
(since C11)
Structure holding an interval broken down into seconds and nanoseconds.
[edit] Member objects
Member
Description
/* see below */
tv_nsec
nanoseconds (valid values are [
0,
999999999]
)
The type of tv_nsec
is long.
The type of tv_nsec
is an implementation-defined signed integer type that can represent integers in [
0,
999999999]
.
The declaration order of tv_sec
and tv_nsec
is unspecified. Implementation may add other members to struct timespec.
[edit] Notes
The type of tv_nsec
is long long on some platforms, which is conforming only since C23.
[edit] Example
Run this code
#include <stdint.h> #include <stdio.h> #include <time.h> int main(void) { struct timespec ts; timespec_get(&ts, TIME_UTC); char buff[100]; strftime (buff, sizeof buff, "%D %T", gmtime (&ts.tv_sec)); printf ("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec); printf ("Raw timespec.tv_sec: %jd\n", (intmax_t )ts.tv_sec); printf ("Raw timespec.tv_nsec: %09ld\n", ts.tv_nsec); }
Possible output:
Current time: 04/04/24 14:45:17.885909786 UTC Raw timespec.tv_sec: 1712241917 Raw timespec.tv_nsec: 885909786
[edit] References
- C23 standard (ISO/IEC 9899:2024):
- 7.27.1/3 Components of time (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.27.1/3 Components of time (p: 284)
- C11 standard (ISO/IEC 9899:2011):
- 7.27.1/3 Components of time (p: 388)
[edit] See also
(C11)
(function) [edit]
C++ documentation for timespec