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

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

" 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_settime – установка показаний часов.

Синтаксис:

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

Аргументы:

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

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

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

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

Описание:

Функция clock_settime() устанавливает часы, на которые указывает идентификатором clock_id, в соответствием со значением, на которое указывает аргумент t_time.

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

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

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

Структура 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 программу необходимо запускать от имени «супер пользователя» для этого используйте команду sudo. Например, для запуска программы скомпиленной, по описанной выше технологии наберите в консоле: sudo ./ts

Пример:

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

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

int main (void)
{  
   // Структура с временем для установки системных часов
   // 0 –секунд, 0 - наносекунд
   struct timespec  s_time = {0,0);

   // Структура для сохранения считанного времени
   struct timespec  t_time;

   // Устанавливает системные часы
   clock_settime (CLOCK_REALTIME, & s_time);

   // Задержка на 5 секунд
   sleep (5);

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

   // Выводим определенное время на экран консоли
   printf (“Время: %ld секунд  %ld наносекунд\n”, m_time.tv_sec, m_time.tv_nsec);

   return 0;
}

Результат:

Время: 5 секунд 1089182 наносекунд



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

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


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

Рейтинг@Mail.ru