Spec-Zone.ru › C

timespec

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

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

Поля-члены

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

Тип tv_nsec — long.

(до C23)

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

(начиная с C23)

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

Примечания

В некоторых платформах тип tv_nsec — longlong; это соответствует стандарту только начиная с C23.

Пример

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

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

Current time: 04/04/24 14:45:17.885909786 UTC
Raw timespec.tv_sec: 1712241917
Raw timespec.tv_nsec: 885909786

Ссылки на стандарты

  • Стандарт C23 (ISO/IEC 9899:2024):
    • 7.27.1/3 Компоненты времени (стр.: уточняется)
  • Стандарт 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/c/chrono/timespec

Spec-Zone.ru

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