Spec-Zone.ru › C

timespec_getres

Определён в заголовочном файле <time.h>
int timespec_getres( struct timespec* ts, int base );
(начиная с C23)

Если ts не является нулевым указателем и base поддерживается timespec_get, изменяет *ts, чтобы оно содержало разрешение времени, предоставляемое timespec_get для base. Для каждого поддерживаемого base несколько вызовов timespec_getres в ходе выполнения одной и той же программы дают идентичные результаты.

Параметры

ts - указатель на объект типа struct timespec
base - TIME_UTC или другое ненулевое целочисленное значение, указывающее основу времени

Возвращаемое значение

Значение base, если base поддерживается, и ноль в противном случае.

Примечания

Функцию POSIX clock_getres(clock_id, ts) также можно использовать для заполнения timespec разрешением времени, определяемым clock_id.

Пример

#include <stdio.h>
#include <time.h>

int main(void)
{
    char buff[128];
    struct timespec ts;
    const int res = timespec_getres(&ts, TIME_UTC);
    if (res == TIME_UTC)
    {
        struct tm timer;
        strftime(buff, sizeof buff, "%D %T", gmtime_r(&ts.tv_sec, &timer));
        printf("Time resolution info: %s.%09ld UTC\n", buff, ts.tv_nsec);
    }
    else
        printf("TIME_UTC base is not supported.");
}

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

Time resolution info: 01/01/70 00:00:00.000000001 UTC

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
    • 7.29.2.7 Функция timespec_getres (стр. 404)

См. также

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

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

Spec-Zone.ru

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