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