Linux программирование в примерах
Шрифт:
• Действия, происходящие после возвращения из обработчика, варьируют в зависимости от системы. Традиционные системы (V7, Solaris, возможно, и другие) восстанавливают действие сигнала по умолчанию. На этих системах прерванный системный вызов возвращает -1, устанавливая в
• GNU/Linux придерживается POSIX, который похож, но не идентичен с BSD. Если не было перемещения
• Обработчики сигналов, используемые с
• Первоначальной попыткой создания надежных сигналов был API сигналов System V Release 3 (скопированный из BSD 4.0). Не используйте его в новом коде.
• POSIX API содержит множество компонентов:
• маску сигналов процесса, перечисляющую текущие заблокированные сигналы;
• тип
• функцию
• функцию
• API
Все эти возможности вместе используют блокирование сигналов и маску сигналов процесса для предоставления надежных сигналов. Более того, через различные флаги можно получить повторно запускаемые системные вызовы и более подходящие обработчики сигналов, которые получают большую информацию о причине, вызвавшей определенный сигнал (структура
• Механизмами POSIX для посылки сигналов являются
• Сигналы могут использоваться в качестве механизма IPC, хотя такой способ является плохим способом структурирования приложения, подверженным состояниям гонок. Если кто-то держит приставленным к вашей голове ружье, чтобы заставить вас работать таким способом, для правильной работы используйте тщательное блокирование сигналов и интерфейс
•
• Сигналы управления заданиями реализуют управление заданиями для оболочки. Большую часть времени следует оставлять их с установленными действиями по умолчанию, но полезно понимать, что иногда имеет смысл их перехватывать.
• Перехват
• После
Упражнения
1. Реализуйте
2. Если у вас не установлен GNU/Linux, запустите на своей системе
3. Реализуйте функции System V Release 3
4. Потренируйте свои навыки в жонглировании битами. В предположении, что сигнал 0 отсутствует и что имеется не более 31 сигналов, предусмотрите
5. Еще немного потренируйте свои навыки жонглирования битами. Повторите предыдущее упражнение, на этот раз предположив, что наибольшим сигналом является 42.
6. Теперь, когда вы сделали предыдущие два упражнения, найдите
7. В разделе 10.7 «Сигналы для межпроцессного взаимодействия» мы упомянули, что код изделия должен работать с начальной маской сигналов процесса, добавляя и удаляя блокируемые сигналы в вызове
Искусство невозможного (в 3-х томах)
Документальная литература:
биографии и мемуары
публицистика
рейтинг книги
Принцесса Торн
Любовные романы:
зарубежные любовные романы
рейтинг книги
Ты - наша
1. Наша
Любовные романы:
современные любовные романы
эро литература
рейтинг книги
Изменяющий-Механик. Компиляция. Книги 1-18
Собрание сочинений
Фантастика:
боевая фантастика
космическая фантастика
рейтинг книги
Последний рейд
5. Медорфенов
Фантастика:
фэнтези
аниме
рейтинг книги
За огнями маяков
Старинная литература:
прочая старинная литература
рейтинг книги
Добыча
Деловая литература:
о бизнесе популярно
рейтинг книги