2010-07-01 4 views

ответ

5

С sleep() функции человека страницей:

sleep() функция приостанавливает выполнение вызывающего потока до тех пор, ни секунды секунды истекли или сигнал подается в поток и его действие для вызова функции сигнала выделяющихся или прекратить поток или процесс. Активность системы может удлинять сон на неопределенное количество.

Таким образом, если сигнал отправляется в приложение, его выполнение возобновляется из инструкции после вызова сна.

+0

И, отправив сигнал, это означает использование сигнала тревоги()? – sleep

+1

Да. Чтобы отправить сигнал для внешнего приложения, вы можете использовать функцию kill (process_id, sig), если вы находитесь в ОС * unix. – kist

+2

@sleep: Нет, не используйте 'alarm'. В его manpage говорится: «sleep (3) может быть реализован с использованием SIGALRM, смешение вызовов с сигналом тревоги() и сном (3) - плохая идея». Чтобы отправить сигнал, просто используйте 'raise (3)', 'kill (2)', 'killpg (2)', 'pthread_kill (3)' или 'tgkill (2)'. Используйте один из пользовательских сигналов 'SIGUSR1' или' SIGUSR2'. См. Также «сигнал (7)». – Philipp

Смежные вопросы