On this page
timespec
Defined in header <time.h> | 
      ||
|---|---|---|
 | 
      (since C11) | 
Structure holding an interval broken down into seconds and nanoseconds.
Member objects
time_t tv_sec | 
      whole seconds (valid values are >= 0) | 
/* see below */ tv_nsec | 
      nanoseconds (valid values are [0, 999999999]) | 
The type of   | 
      (until C23) | 
The type of   | 
      (since C23) | 
The declaration order of tv_sec and tv_nsec is unspecified. Implementation may add other members to struct timespec.
Notes
The type of tv_nsec is long long on some platforms, which is conforming only since C23.
Example
#include <stdio.h>
#include <time.h>
#include <stdint.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.time_t: %jd\n", (intmax_t)ts.tv_sec);
    printf("Raw timespec.tv_nsec: %09ld\n", ts.tv_nsec);
}
   Possible output:
Current time: 11/24/21 03:10:50.408191283 UTC
Raw timespec.time_t: 1637723450
Raw timespec.tv_nsec: 408191283
   References
- 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)
 
See also
| 
       
        (C11)
         | 
      returns the calendar time in seconds and nanoseconds based on a given time base  (function)  | 
     
| calendar time type (struct)  | 
     |
C++ documentation for timespec | 
     |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
 https://en.cppreference.com/w/c/chrono/timespec