Spec-Zone.ru › C++

std::timespec_get

Определён в заголовочном файле <ctime>
int timespec_get( std::timespec* ts, int base );
(1) (начиная с C++17)
#define TIME_UTC /* implementation-defined */
(2) (начиная с C++17)
1) Изменяет объект std::timespec, на который указывает ts, записывая в него текущее календарное время в базе времени base.
2) Разворачивается в значение, пригодное для использования в качестве аргумента base функции std::timespec_get.

Реализация может предоставлять другие символьные константы, начинающиеся с TIME_, для обозначения дополнительных баз времени.

Если base равно TIME_UTC, то

  • ts->tv_sec устанавливается в количество секунд с начала эпохи, определяемой реализацией, усечённое до целого значения,
  • член ts->tv_nsec устанавливается в целое количество наносекунд, округлённое с учётом разрешения системных часов.

Параметры

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

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

Значение base в случае успеха, иначе ноль.

Примечания

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

Пример

#include <ctime>
#include <iostream>

int main()
{
    std::timespec ts;
    std::timespec_get(&ts, TIME_UTC);
    char buf[100];
    std::strftime(buf, sizeof buf, "%D %T", std::gmtime(&ts.tv_sec));
    std::cout << "Current time: " << buf << '.' << ts.tv_nsec << " UTC\n";
}

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

Current time: 06/24/16 20:07:42.949494132 UTC

См. также

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

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

Spec-Zone.ru

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