Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" C "

cacos, cacosf, cacosl 

casin, casinf, casinl 

catan, catanf, catanl 

cbrt, cbrtf, cbrtl 

ccos, ccosf, ccosl 

ceil, ceilf, ceill 

cex, cexpf, cexpl 

clearerr 

clock_getres 

clock_gettime 

clock_settime 

clog, clogf, clogl 

clog10, clog10f, clog10l 

copysign, copysignf, copysignl 

cos, cosf, cosl 

cosh, coshf, coshl 

cpow, cpowf, cpowl 

csin, csinf, csinl 

ctan, ctanf, ctanl 

ctime 

ctime_r 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

clock_gettime – определение текущего времени с высокой точностью.

Синтаксис:

#include < time.h >
int clock_gettime(clockid_t clock_id, struct timespec *t_time);

Аргументы:

clock_id – идентификатор часов.
t_time – структура, в которую будет записано определенное время.

Возвращаемое значение:

0 - при успешном завершении функции.

-1 - если обнаружена ошибка, при этом переменной errno присваивается код ошибки [EINVAL] - аргумент clock_id не является идентификатором часов.

Описание:

Функция clock_gettime() записывает текущие показания часов, определенных идентификатором clock_id в структуру, на которую указывает t_time.

Система всегда содержит часы с идентификатором CLOCK_REALTIME (системные часы). Значение этих часов содержит время в секундах и наносекундах, истекшее с 0 часов 1 января 1970 года.

При наличии соответствующего оборудования при конфигурации системы могут быть созданы дополнительные часы.

Структура timespec t_time содержит два элемента: time_t tv_sec – секунды, long tv_nsec – наносекунды (время истекшее с последней полной секунды).

Точность времени, записанного в переменную tv_nsec, определяется разрешающей способностью часов, и может отличаться от наносекунд. Узнать разрешающую способность часов можно с помощью функции clock_getres.

Для компиляции программы использующей данную функцию под ОС типа linux, требуется ключ – lrt. Например, для компиляции файла test.c c созданием объектного файла ts.o необходимо в консоле перейти в папку с файлом test.c и набрать команду: gcc test.c -o ts - lrt

Пример:

В примере определяется текущее время, затем значение секунд и наносекунд выводится в консоль. После вывода снова определяется время и рассчитывается разница между двумя засечками времени в наносекундах (время, затраченное на вывод в консоль) и результат выводится на консоль.


#include < stdio.h > //Для printf
#include < time.h >  //Для clock_gettime

int main (void)
{  
   //Структуры для сохранения определенного времени
   struct timespec mt1, mt2; 
   //Переменная для расчета дельты времени
   long int tt;      
   
   //Определяем текущее время
   clock_gettime (CLOCK_REALTIME, &mt1);
   
   //Выводим определенное время на экран консоли
   printf (“Секунды: %ld\n”,mt1.tv_sec);
   printf (“Наносекунды: %ld\n”,mt1.tv_nsec);

   //Определяем текущее время
   clock_gettime (CLOCK_REALTIME, &mt2);

   //Рассчитываем разницу времени между двумя измерениями
   tt=1000000000*(mt2.tv_sec - mt1.tv_sec)+(mt2.tv_nsec - mt1.tv_nsec);

   //Выводим результат расчета на экран
   printf (“Затрачено время: %ld нс\n”,tt);

   return 0;
}

Результат:

Секунды: 1400251717
Наносекунды: 83548887
Затрачено время: 83082 нс



Смотри так же:

asctime, asctime_r, clock_getres, clock_gettime, clock_gettime, ctime, ctime_r, difftime, gmtime, gmtime_r, localtime, localtime_r, mktime, strftime, time


Яндекс.Метрика

Рейтинг@Mail.ru