Spec-Zone.ru › C

timespec_get

Определено в заголовке <time.h>
int timespec_get( struct timespec *ts, int base );
(1) (с C11)
#define TIME_UTC /* implementation-defined */
(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 временем, прошедшим с эпохи.

Пример

#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)

См. также

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

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

Spec-Zone.ru

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