Linux программирование в примерах
Шрифт:
• То, что случается при прерывании сигналом системного вызова, также различается в традиционной и BSD линейках. Традиционные системы возвращают -1 с errno, установленным в
POSIX требует, чтобы частично выполненный системный вызов возвращал успешное завершение, указав, сколько работы было выполнено. Системный вызов, который еще не начал выполняться,
• Механизм
• Применяется ряд дополнительных предостережений, и в частности, из обработчика сигнала безопасно может вызываться лишь часть стандартных библиотечных функций.
Несмотря на эти проблемы интерфейса
10.5. API сигналов System V Release 3:
BSD 4.0 (примерно с 1980 г.) ввел дополнительные функции API для предоставления «надежных» сигналов. [109] В частности, стало возможным блокировать сигналы. Другими словами, программа могла сообщить ядру: «Зависни на этих конкретных сигналах в течении следующего небольшого промежутка времени, затем доставь их мне, когда я буду готов их принять». Большим преимуществом является то, что эта особенность упрощает обработчики сигналов, которые автоматически запускаются со своим заблокированным сигналом (чтобы избежать проблемы одновременной обработки двух сигналов) и, возможно, также и с другими заблокированными сигналами.
109
Для использования API требуется компоновка с отдельной библиотекой, —
System V Release 3 (примерно с 1984 г.) приняла эти API и популяризовала их, в большинстве связанных с Unix документации и книгах вы, возможно, увидите, что на эти API ссылаются, как ведущие начало от System V Release 3. Эти функции следующие:
Стандарт POSIX для этих функций описывает их поведение в терминах маски сигналов процесса. Маска сигналов процесса отслеживает, какие сигналы (если они вообще есть) процесс заблокировал в настоящее время. Более подробно это описывается в разделе 10.6.2 «Наборы сигналов:
Добавляет
Удаляет
Игнорирует
Удаляет
Это замена для signal. (Здесь мы использовали обозначение из справочной страницы GNU/Linux, чтобы упростить восприятие объявления функции.)
Для
Когда для установки обработчика сигнала используется
ЗАМЕЧАНИЕ. POSIX стандартизует эти API, поскольку главной целью POSIX является формализация существующей практики, где это возможно. Однако, функции
10.6. Сигналы POSIX
API POSIX основан на API
Сорок апрельских дней
1. Сорок апрельских дней
Фантастика:
фэнтези
рейтинг книги
Жемчужина Зорро
Старинная литература:
прочая старинная литература
рейтинг книги
Чувствуй себя как хочешь
2. Парни из Манчестера
Любовные романы:
остросюжетные любовные романы
рейтинг книги
Воля богов!
Приключения:
исторические приключения
рейтинг книги
Сирота
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
рейтинг книги
Антология Сатиры и Юмора России XX века. Том 18. Феликс Кривин
Фантастика:
социально-философская фантастика
рейтинг книги
Сан Феличе Иллюстрации Е. Ганешиной
Приключения:
исторические приключения
рейтинг книги
Дневник. Том III. 1860-1861. Созерцательное богословие. Крупицы от трапезы Господней
Религия и эзотерика:
религия
православие
христианство
рейтинг книги
Стихотворения и поэмы (основное собрание)
Поэзия:
поэзия
рейтинг книги
Весь Дэн Браун в одном томе
Детективы:
триллеры
прочие детективы
рейтинг книги
Отморозок 5
5. Отморозок
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Методы статистического анализа исторических текстов (часть 2)
Научно-образовательная:
история
рейтинг книги