ualarm - планирует отправку сигнала через заданное число микросекунд
ualarm(3)
планирует отправку сигнала через заданное число микросекунд
ОБЗОР
#include <unistd.h>
useconds_t ualarm(useconds_t usecs, useconds_t interval);
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
ualarm():
Начиная с glibc 2.12:
_BSD_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
До glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
ОПИСАНИЕ
Функция
ualarm() планирует отправку сигнала
SIGALRM вызывающему
процессу (не менее чем) через
usecs микросекунд. Задержка может быть
слегка больше при большой загруженности системы, из-за, собственно, времени
обработки этого вызова или из-за неточности хода системных часов.
Если сигнал не будет пойман или проигнорирован, то SIGALRM уничтожит
процесс.
Если аргумент interval не равен нулю, то сигналы SIGALRM будут
отправляться повторно каждые interval микросекунд после первого.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Эта функция возвращает число микросекунд, оставшихся от любого ранее
установленного сигнала, или 0, если сигналов не запланировано.
ОШИБКИ
EINTR
Прервано сигналом; см. signal(7).
EINVAL
Значение usec или interval больше 1000000 (в тех системах, где это
считается ошибкой).
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
ualarm()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
4.3BSD, POSIX.1-2001. В POSIX.1-2001 функция
ualarm() помечена как
устаревшая. В POSIX.1-2008 описание
ualarm() было удалено. В 4.3BSD,
SUSv2 и POSIX нет описания ошибок.
ЗАМЕЧАНИЯ
В POSIX.1-2001 не указано, что случится, если значение
usecs равно 0. В
Linux (и, вероятно, в большинстве систем) произойдёт отмена любого
взведённого будильника.
Тип useconds_t является беззнаковым целым типом, способным хранить целые
числа в диапазоне [0,1000000]. В первоначальной реализации BSD и glibc до
версии 2.1, аргументы ualarm() имели тип unsigned int. Программы будут
более переносимы, если они никогда не будут явно упоминать тип
useconds_t.
Взаимодействие этой функции с другими функциями таймера, такими как
alarm(2), sleep(3), nanosleep(2), setitimer(2),
timer_create(2), timer_delete(2), timer_getoverrun(2),
timer_gettime(2), timer_settime(2), usleep(3) не определено.
Эта функция устарела. Используйте вместо неё setitimer(2) или
интервальные таймеры POSIX (timer_create(2) и т.д.).