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
См. также
|
(C++17) | время в секундах и наносекундах (структура) |
| возвращает текущее системное время в виде времени, прошедшего с начала эпохи (функция) |
|
Документация по 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