clock_getres – определение разрешающей способности часов.
Синтаксис:
#include < time.h >
int clock_getres (clockid_t clock_id, struct timespec *t_res);
Аргументы:
clock_id – идентификатор часов.
t_res – структура, в которую будет записан минимальный интервал времени, который могут замерить указанные часы.
Возвращаемое значение:
0 - при успешном завершении функции.
-1 - если обнаружена ошибка, при этом переменной errno присваивается код ошибки [EINVAL] - аргумент clock_id не является идентификатором часов.
Описание:
Функция clock_getres() позволяет узнать разрешающую способность часов, указанных в аргументе clock_id. Система всегда содержит часы с идентификатором CLOCK_REALTIME (системные часы). Значение этих часов содержит время в секундах и наносекундах, истекшее с 0 часов 1 января 1970 года.
В результате выполнения функции в структуру, на которую указывает аргумент t_res, будет записан минимальный интервал времени, который способны замерить данные часы. Структура timespec t_time содержит два элемента: time_t tv_sec – секунды, long tv_nsec – наносекунды.
Для компиляции программы использующей данную функцию под ОС типа linux, требуется ключ – lrt. Например, для компиляции файла test.c c созданием объектного файла ts.o необходимо в консоле перейти в папку с файлом test.c и набрать команду: gcc test.c -o ts - lrt
Пример:
В примере определяется разрешающая способность часов CLOCK_REALTIME, рассчитывается в наносекундах минимальный доступный для измерения интервал времени и результат расчета выводится на экран.
#include < stdio.h > //Для printf
#include < time.h > //Для clock_getres
int main (void)
{
// Структуры для сохранения разрешения часов
struct timespec res_clock;
// Переменная для расчета минимального интервала времени
// доступного для измерения
int res;
// Определяем разрешающую способность часов
clock_getres (CLOCK_REALTIME, &res_clock);
// Рассчитываем минимальный интервал времени в наносекундах
res=1000000000*res_clock.tv_sec + res_clock.tv_nsec;
// Выводим результат расчета на консоль
printf (“%d нс\n”,res);
return 0;
}
| |
Результат:
Смотри так же:
asctime,
asctime_r,
clock_getres,
clock_gettime,
clock_gettime,
ctime,
ctime_r,
difftime,
gmtime,
gmtime_r,
localtime,
localtime_r,
mktime,
strftime,
time
|