Linux программирование в примерах
Шрифт:
Преимуществом здесь является то, что со своим установленным обработчиком вы можете делать при поступлении сигнала все, что хотите. Недостаток же в том, что приходится быть готовым к работе в нескольких контекстах: основном контексте и контексте обработчика сигнала.
10.8.1.2. Простой и легкий:
Более легкий способ ожидания истечения фиксированного промежутка времени заключается в использовании функции
Возвращаемое значение равно 0, если процесс проспал все отведенное время. В противном случае возвращается оставшееся для сна время. Это последнее значение может возникнуть в случае, если появился сигнал, пока процесс дремал.
ЗАМЕЧАНИЕ. Функция
10.8.2. Сигналы, управляющие заданиями
Несколько сигналов используются для реализации управления заданиями — возможностью начинать и останавливать задания и перемещать их из фонового режима на передний план и обратно. На уровне пользователя вы, несомненно, проделывали это: использовали CTRL-Z для остановки задания,
Секция 9.2.1 «Обзор управления заданиями» описывает в общем, как осуществляется управление заданиями. Данный раздел завершает обзор, описав сигналы управления заданиями. поскольку иногда может понадобиться перехватить их непосредственно:
Этот сигнал осуществляет «остановку терминала». Это сигнал, который ядро посылает процессу, когда пользователь за терминалом (или окном, эмулирующим терминал) набирает определенный ключ. Обычно это CTRL-Z, аналогично тому, как CTRL-C обычно посылает
Действием по умолчанию для
Этот сигнал также останавливает процесс, но он не может быть перехвачен, заблокирован или проигнорирован. Он может быть использован в качестве последнего средства вручную (посредством команды
Ранее эти сигналы были определены как «фоновое чтение из tty» и «фоновая запись в tty». tty является устройством терминала. В системах управления заданиями процессы, работающие в фоновом режиме, заблокированы от попыток чтения с терминала или записи в него. Когда процесс пытается осуществить любую из этих операций, ядро посылает ему соответствующий сигнал. Для обоих действием по умолчанию является остановка процесса. При желании можно перехватить эти сигналы, но для этого редко бывает необходимость.
Этот сигнал вновь запускает остановленный процесс. Если процесс не остановлен, он игнорируется. При желании его можно перехватить, но опять-таки для большинства программ мало причин для осуществления этого. Продолжая наш пример, обработчик
Когда процесс остановлен, любые другие посланные ему сигналы становятся ожидающими. Исключением является
10.8.3. Родительский надзор: три различные стратегии
Как описано в разделе 9.1.1 «Создание процесса:
Завершившиеся порожденные процессы, которых никто не ожидал, называются зомби (zombies). Обычно каждый раз при завершении порожденного процесса ядро посылает родительскому процессу сигнал
112
Исторически системы BSD использовали имя
Сочетание флагов для поля
Тринадцатый IV
4. Видящий смерть
Фантастика:
боевая фантастика
попаданцы
рейтинг книги
Тарзан (Сборник рассказов)
Тарзан
Приключения:
природа и животные
рейтинг книги
История ислама. Исламская цивилизация от рождения до наших дней
Научно-образовательная:
история
культурология
религиоведение
рейтинг книги
Петербург - нуар. Рассказы
Проза:
современная проза
рейтинг книги
Гильдия
Гильдия
Фантастика:
боевая фантастика
рейтинг книги
Арестант
7. Бандитский Петербург
Детективы:
боевики
рейтинг книги
Эзотерический мир. Семантика сакрального текста
Религия и эзотерика:
эзотерика
рейтинг книги
Виконт. Книга 2. Обретение силы
2. Псевдоним `Испанец`
Фантастика:
боевая фантастика
попаданцы
рпг
рейтинг книги
Атосса. Император
Проза:
историческая проза
рейтинг книги
Я снова царь. Книга XXXIII
33. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Город золотых теней
1. Иноземье
Фантастика:
научная фантастика
рейтинг книги