Spec-Zone.ru › C

timespec

Определено в заголовке <time.h>
struct timespec;
(с C11)

Структура, содержащая интервал, разбитый на секунды и наносекунды.

Члены

time_t tv_sec целые секунды (допустимые значения >= 0)
/* see below */ tv_nsec наносекунды (допустимые значения [0, 999999999])

Тип tv_nsec — long.

(до C23)

Тип tv_nsec — определённый реализацией знаковый целочисленный тип, который может представлять целые числа в диапазоне [0, 999999999].

(с C23)

Порядок объявления tv_sec и tv_nsec не определён. Реализация может добавить другие члены в struct timespec.

Примечания

Тип tv_nsec на некоторых платформах — long long, что соответствует стандарту только с C23.

Пример

#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);
}

Возможный вывод:

Current time: 11/24/21 03:10:50.408191283 UTC
Raw timespec.time_t: 1637723450
Raw timespec.tv_nsec: 408191283

Справочные материалы

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.27.1/3 Компоненты времени (стр. 284)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.27.1/3 Компоненты времени (стр. 388)

См. также

timespec_get
(C11)
возвращает время календаря в секундах и наносекундах на основе заданной временной базы
(функция)
tm
тип календарного времени
(структура)
Документация C++ для timespec

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/chrono/timespec

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API