Spec-Zone.ru › C++

std::timespec_getres

Определён в заголовочном файле <ctime>
int timespec_getres( std::timespec *ts, int base );
(начиная с C++26)

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

Параметры

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

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

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

Примечания

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

Пример

#include <cstdio>
#include <ctime>

int main()
{
    char buff[128];
    std::timespec ts;

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

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

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

См. также

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

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

Spec-Zone.ru

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