ualarm -
планирует
отправку
сигнала
через
заданное
число
микросекунд
Standard C library (
libc,
-lc)
#include <unistd.h>
useconds_t ualarm(useconds_t usecs, useconds_t interval);
ualarm():
Since glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
Функция
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 (и,
вероятно, в
большинстве
систем)
произойдёт
отмена
любого
взведённого
будильника.
The type
useconds_t is an unsigned integer type capable of holding
integers in the range [0,1000000]. On the original BSD implementation, and in
glibc before glibc 2.1, the arguments to
ualarm() were instead typed as
unsigned int. Programs will be more portable if they never mention
useconds_t explicitly.
Взаимодействие
этой
функции с
другими
функциями
таймера,
такими как
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) и т.д.).
alarm(2),
getitimer(2),
nanosleep(2),
select(2),
setitimer(2),
usleep(3),
time(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy Ovchinnikov
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
Katrin Kutepova <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]