std::timespec_get
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <ctime>
|
||
int timespec_get( std::timespec* ts, int base ); |
(1) | (начиная с C++17) |
#define TIME_UTC /* определено реализацией */ |
(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 <iostream>
#include <ctime>
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 << "Текущее время: " << buf << '.' << ts.tv_nsec << " UTC\n";
}
Возможный вывод:
Текущее время: 06/24/16 20:07:42.949494132 UTC
Смотрите также
(C++17) |
время в секундах и наносекундах (структура) |
| возвращает текущее время системы как время с начала эпохи (функция) | |
Документация C по timespec_get
| |