ualarm - отправление сигнала через заданное число микросекунд
СИНТАКСИС
/* BSD version */
#include <unistd.h>unsigned int ualarm(unsigned int usecs, unsigned int interval);
/* SUSv2 version */
#define _XOPEN_SOURCE 500 #include <unistd.h>useconds_t usleep(useconds_t usecs, useconds_t interval);
ОПИСАНИЕ
Функция ualarm() приводит к отправке сигнала SIGALRM
вызывающему процессу (не менее чем) через
usecs
микросекунд.
Задержка может быть слегка увеличена при большой загруженности системы,
из-за собственно времени обработки этого вызова или из-за неточности
хода системных часов.
Если сигнал не будет пойман или проигнорирован, то он уничтожит процесс.
Если аргумент
interval
не равен нулю, то дальнейшие сигналы SIGALRM будут отправляться каждые
interval
микросекунд после первого.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Эта функция возвращает число микросекунд, оставшихся от предудущего
вызова, или 0, если таймер выключен.
НАЙДЕННЫЕ ОШИБКИ
EINTR
Прервано сигналом.
EINVAL
usecs или interval не меньше чем 1000000
(на системах, где это считается ошибкой.)
СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3.
BSD 4.3 и SUSv2 не определяют никаких ошибок.
ЗАМЕЧАНИЯ
Тип
useconds_t
является беззнаковым целым типом, умеющих хранить целые в диапазоне [0,1000000].
Этот тип определяется
<sys/types.h>
включенным в
<unistd.h>
но glibc определяет его только когда _XOPEN_SOURCE имеет значение не меньше 500,
или если определены и _XOPEN_SOURCE, и _XOPEN_SOURCE_EXTENDED.
Программы будут более пригодны для портирования, если в них
никогда не будет явно упоминаться этот тип.
Взаимодействие этой функции с другими функциями таймеров, таких как
alarm(),
sleep(),
nanosleep(),
setitimer(),
timer_create(),
timer_delete(),
timer_getoverrun(),
timer_gettime(),
timer_settime(),
usleep()
не определено.
Эта функция устарела. Используйте вместо нее
nanosleep(2)
или
setitimer(2).