SLEEP(3C)
НАЗВАНИЕ
sleep - приостановка выполнения программы на указанный
промежуток времени
СИНТАКСИС
unsigned sleep (seconds)
unsigned seconds;
ОПИСАНИЕ
Выполнение процесса приостанавливается на заданное аргументом seconds число секунд. Время фактической приостановки может оказаться меньше заданного по двум причинам:
- Планируемые пробуждения процессов происходят в
фиксированные секундные интервалы времени, в соответствии с внутренними часами.
- Любой перехваченный сигнал прерывает "спячку",
после чего срабатывает реакция на сигнал.
С другой стороны, фактическое время приостановки может
оказаться больше запрошенного из-за того, что система
занята другой, более приоритетной деятельностью. Результат функции sleep есть время "недосыпания" (запрошенное время минус фактическое) в случае, если будильник сработал раньше, чем кончилось запрошенное время,
или в случае преждевременного пробуждения вследствие
перехвата другого сигнала.
Данная функция реализована с помощью установки будильника - сигнал SIGALRM - и приостановки процесса до возникновения этого или других сигналов. Ранее специфицированная реакция на будильник сохраняется и затем восстанавливается. Если вызывающая программа установила
будильник до вызова функции sleep, причем на более раннее время, то процесс приостанавливается только до возникновения сигнала будильника. Пользовательская реакция
на этот сигнал отрабатывает непосредственно перед возвратом из функции sleep. Если же время приостановки
меньше времени, оставшегося до срабатывания будильника,
то функция sleep никак не повлияет на будильник.
СМ. ТАКЖЕ
alarm(2), pause(2), signal(2).