Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       timer_settime,  timer_gettime  -  запускает/останавливает и возвращает состояние таймера POSIX некоторого
       процесса

БИБЛИОТЕКА

       Библиотека реального времени (librt, -lrt)

ОБЗОР

       #include <time.h>

       int timer_gettime(timer_t timerid, struct itimerspec *curr_value);
       int timer_settime(timer_t timerid, int flags,
                         const struct itimerspec *restrict new_value,
                         struct itimerspec *_Nullable restrict old_value);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       timer_settime(), timer_gettime():
           _POSIX_C_SOURCE >= 199309L

ОПИСАНИЕ

       timer_settime()  arms or disarms the timer identified by timerid.  The new_value argument is  pointer  to
       an  itimerspec  structure  that  specifies the new initial value and the new interval for the timer.  The
       itimerspec structure is described in itimerspec(3type).

       Каждая подструктура структуры itimerspec представляет  собой  структуру  timespec(3),  которая  позволяет
       задавать значение времени в секундах и наносекундах. Эти значения времени отсчитываются по часам, которые
       были указаны при создании таймера с помощью timer_create(2).

       Если  new_value->it_value  равно  ненулевому  значению  (т.  е.,  любое  из  подполей  не равно нулю), то
       timer_settime() запускает таймер, устанавливая ему первое время срабатывания (если таймер уже запущен, то
       предыдущие параметры перезаписываются). Если new_value->it_value равно нулю (т.  е.,  оба  подполя  равны
       нулю), то таймер выключается.

       В  поле  new_value->it_interval указывается период таймера в секундах и наносекундах. Если это поле равно
       нулю,  то  каждый  раз,  когда  таймер  срабатывает,  он  перезапускается  со  значением,   указанным   в
       new_value->it_interval.  Если  new_value->it_interval  равно нулю, то таймер срабатывает только один раз,
       согласно заданному в it_value времени.

       По умолчанию, начальное время  срабатывания,  указанное  в  new_value->it_value,  считается  относительно
       текущего  времени  на часах таймера на момент вызова. Это можно изменить, указав TIMER_ABSTIME в flags; в
       этом случае new_value->it_value рассматривается как абсолютное значение по часам таймера; то есть  таймер
       сработает,  когда  значение  часов  достигнет  значения, указанного в new_value->it_value. Если указанное
       абсолютное время  уже  прошло,  то  таймер  срабатывает  немедленно  и  счётчик  переполнения  изменяется
       соответствующим образом (смотрите timer_getoverrun(2)).

       Если  значение часов CLOCK_REALTIME корректируется (adjusted) и указано абсолютное значение у включённого
       таймера  с  этими  часами,  то  срабатывание  таймера  будет  скорректировано  соответствующим   образом.
       Корректировка часов CLOCK_REALTIME не влияет на относительные таймеры, использующие эти часы.

       Если  значение  old_value  не  равно  NULL,  то оно указывает на буфер, который используется для возврата
       предыдущего интервала таймера (в old_value->it_interval) и количества времени, которое  осталось  таймеру
       до срабатывания (в old_value->it_value).

       Вызов  timer_gettime()  возвращает  время  до  следующего срабатывания таймера timerid и интервал в буфер
       curr_value. Оставшееся время до следующего срабатывания возвращается в curr_value->it_value;  это  всегда
       относительное  значение, независимо от того, указывался ли флаг TIMER_ABSTIME при включении таймера. Если
       значение  curr_value->it_value  равно  нулю,  то  таймер  в  данный  момент  выключен.  Интервал  таймера
       возвращается  в  curr_value->it_interval.  Если  значение  curr_value->it_interval  равно  нулю,  то  это
       «одноразовый» таймер.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении timer_settime() и timer_gettime() возвращается 0. При ошибке возвращается -1, а в
       errno содержится код ошибки.

ОШИБКИ

       Эти функции могут завершиться со следующими ошибками:

       EFAULT Некорректный указатель new_value, old_value или curr_value.

       EINVAL Неверное значение timerid.

       timer_settime() может завершиться со следующими ошибками:

       EINVAL Значение new_value.it_value отрицательно; или new_value.it_value.tv_nsec отрицательно  или  больше
              999999999.

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       Linux 2.6.  POSIX.1-2001.

ПРИМЕРЫ

       Смотрите timer_create(2).

СМОТРИТЕ ТАКЖЕ

       timer_create(2), timer_getoverrun(2), timespec(3), time(7)

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства  разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>,
       Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,   Yuri   Kozlov    <yuray@komyakino.ru>,    Иван    Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                 timer_settime(2)