alarm – установка будильника
Синтаксис:
#include < unistd.h>
unsigned int alarm (unsigned int seconds);
Аргументы:
unsigned int seconds – время задержки в секундах до генерации сигнала SIGALRM (время до срабатывания будильника).
Возвращаемое значение:
Время в секундах, оставшееся до генерации сигнала SIGALRM (время до срабатывания будильника), установленное предыдущим вызовом функции alarm или 0 если «будильник» до этого не устанавливался или уже сработал.
Описание:
Функция alarm () указывает системе сгенерировать сигнал SIGALRM через время, заданное аргументом seconds (в секундах). Из-за накладных расходов системы сигнал может быть сгенерирован несколько позже.
Повторный вызов функции alarm () приводит к отмене действия предыдущего вызова (если сигнал SIGALRM еще не был сгенерирован), и установке нового времени генерации сигнала.
Если аргумент seconds равен нулю, то функции alarm() только отменяет предыдущий вызов этой функции.
Пример:
В примере к сигналу SIGALRM привязывается функция MyAlarm, завершающая работу программы. Далее устанавливается «будильник» на 10 секунд и запускается бесконечный цикл. Через 10 секунд срабатывает будильник (генерируется сигнал SIGALRM), по которому запускается функция MyAlarm и завершается работа программы.
#include < stdio.h > //Для puts
#include < unistd.h > //Для alarm
#include < signal.h > //Для signal
//Функция, вызываемая при генерации сигнала SIGALRM
void MyAlarm (int var)
{ puts (“End work”);
_Exit (0); //Завершение работы программы
}
int main (void)
{
puts (“Start work”);
//Привязка функции MyAlarm к сигналу SIGALRM
signal (SIGALRM, MyAlarm);
//Установка будильника на 10 секунд
alarm (10);
//Бесконечный цикл
while (1) {}
return 0;
}
| |
Результат:
Смотри так же:
nanosleep
pause
sigaction
sleep
timer_settime
|