timespec_get
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <time.h>
|
||
int timespec_get( struct timespec *ts, int base ); |
(1) | (начиная с C11) |
#define TIME_UTC /* определяется реализацией */ |
(2) | (начиная с C11) |
1) Изменяет объект типа timespec, на который указывает
ts, для сохранения текущего календарного времени с основанием base.2) Расширяется в значение, подходящее для использования в качестве аргумента
base в timespec_getРеализацией могут предоставляться другие макроконстанты, начинающиеся с TIME_, для обозначения дополнительных оснований времени
Если base есть TIME_UTC, то
ts->tv_secустанавливается в количество секунд с начала определяемой реализации эпохи, усечённое до целого значенияts->tv_nsecустанавливается в целое количество наносекунд, округлённое в соответствии с разрешением системных часов
Параметры
| ts | — | указатель на объект типа struct timespec
|
| base | — | TIME_UTC или другое ненулевое целое значение, обозначающее основание времени
|
Возвращаемое значение
Значение base при успехе, ноль иначе.
Замечания
Функция POSIX clock_gettime(CLOCK_REALTIME, ts) может также использоваться для заполнения timespec временем с начала эпохи Unix.
Пример
Запустить этот код
#include <stdio.h>
#include <time.h>
int main(void)
{
struct timespec ts;
timespec_get(&ts, TIME_UTC);
char buff[100];
strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}
Возможный вывод:
Current time: 02/18/15 14:34:03.048508855 UTC
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.27.2.5 Функция timespec_get (стр. 286)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.27.2.5 Функция timespec_get (стр. 390)
См. также
(C11) |
время в секундах и наносекундах (структура) |
(C23) |
возвращает точность календарного времени по заданному основанию времени (функция) |
| возвращает текущее календарное время системы как время, прошедшее с начала эпохи Unix (функция) | |
Документация C++ по timespec_get
| |