LINUX.ORG.RU

Работа с сигналами в Linux

 , ,


0

0

В современных операционных системах существует понятие межпроцессного взаимодействия (Inter-Process Communication – IPC) – это набор способов обмена данными между процессами и/или потоками. Одним из таких способов обмена служат сигналы. Концепцию сигналов поддерживает большинство операционных систем, но, например, Windows, не имеет их полноценной поддержки для использования в качестве одного из способов IPC – в подобных операционных системах сигналы лишь реализованы в стандартной библиотеке языка C.
В первой статье цикла – «Основы работы с сигналами» – описана общая концепция сигналов (так, как ее видит POSIX) и даны основы работы с сигналами – отсылка сигнала, ситуации, когда она происходит, обработка принятого сигнала и создание своего обработчика.
Во второй статье цикла – «Дополнительные сведения о сигналах» – будет дана информация о получении контекста сигнала и об отправке данных вместе с сигналом. Также будет рассказано о сигналах реального времени.

>>> Подробности

★★★

Проверено: isden ()

Годная статья. Понравилось.

Manhunt ★★★★★
()

Чего только люди ни делают...

... лишь бы не читать APUE.

raorn
()

> В современных операционных системах

В UNIX сообщения и семафоры с 1983 года...

vvnab
()

Стивенс и еще раз Стивенс.

А статья непроработана и носит, скорее, поверхностный характер. Хорошо бы добавить конкретики, разбора ситуаций, примеров. Например, полезно было бы пояснить упоминание возможности отправить сигнал самому себе классическим случаем, когда кастомный обработчик, отработав, восстанавливает обработчик по умолчанию и повторяет сигнал. Было бы интересно и полезно.

Группы процессов также упомянуты мельком, а эта тема как раз мало известна в широких кругах околосистемных квазипрограммистов. Разобрать на примере killpg, setpgid и т.п. было бы весьма полезно.

Но автор учится писать и стремится поделиться опытом, и это уже хорошо.

northerner ★★★
()

Раньше, прочитав текст новости, я угадывал автора - IBM_dw. Только что я угадал автора, прочитав название.

bolmer
()

Это здорово!

Одна из наиболее хороших Ваших статей. Для тех, «кто очень хочет разобраться и понять»© (один из хороших знакомых), как оно, вообще - работать способно? :-)) Вот так-то... ;-)

R_Valery ★★★
()
Ответ на: комментарий от northerner

Так это, как бы, после...

> Хорошо бы добавит конкретики, разбора ситуаций, примеров. Например, полезно было бы пояснить упоминание возможности отправить сигнал самому себе классическим...

Ни кому не мешало бы овладеть, за одно, и английским... ;-)

R_Valery ★★★
()
Ответ на: комментарий от northerner

>>А статья непроработана и носит, скорее, поверхностный характер

публикуемые IBM_dW статьи абсолютно все непроработаны и носят, скорее, поверхностный характер ;)

alex_custov ★★★★★
()

Любопытно, что у IBM_dW тоже есть скор.

Новости он исправно пишет, в срачах не участвует. Такими темпами скоро станет пятизвездочником и модератором, после чего забанит всех человеков.

Nebuchadnezzar ★★★★
()
Ответ на: комментарий от alex_custov

на IBMdw есть и нормальные статьи, например, я не устану рекомендовать Дэвида Мерца, если кто Питоном интересуется. но это увы редкое исключение.

val-amart ★★★★★
()
Ответ на: комментарий от alex_custov

Ну, это нормально, видать какое-то менеджерье откусывает бюджетов через ЛОР.

Sanitar
()
Ответ на: комментарий от val-amart

> на IBMdw есть и нормальные статьи, например, я не устану рекомендовать Дэвида Мерца, если кто Питоном интересуется. но это увы редкое исключение.

ссылку запость

www_linux_org_ru ★★★★★
()

Как увидел в коде MAX_SENDED_SIGS, так сразу
подумал, что наши писали (нет слова sended в английском),
и точно, Андриенко Евгений.
Ну а если по делу, то статья ознакомительная,
вполне пригодная, но очень поверхностная.
Не описаны подводные камни, такие как, например,
невозможность вызывать большинство библиотечных
функций из обработчика; тот факт, что обработчик
может испортить errno, и как с этим бороться, и
ещё тонны нюансов.
Кстати, непонятна логика описания sa_mask, и,
сразу после этого, пример с использованием
sigprocmask(SIG_BLOCK, ...) внутри обработчика
(можно было той же sa_mask и воспользоваться).
Короче, после прочтения статьи, рекомендую вот
с этим ознакомиться:
http://mailman.alsa-project.org/pipermail/alsa-devel/2008-May/008030.html

anonymous
()

> We tryed access

Английскому ныне студентов не учат?..

ntp
()
Ответ на: комментарий от anonymous

(можно было той же sa_mask и воспользоваться).

Нет, всё даже ещё хуже.
Автор явно не слышал про флаг SA_NODEFER, и вот
этот кусок:
---
Добиться этого можно, заблокировав на время доставку сигнала, обработчик которого сейчас работает, при помощи системного вызова sigprocmask().
---
является полным бредом. Если флаг
SA_NODEFER не использовали, то сигнал,
обработчик которого сейчас работает, и
так заблокирован. Так что статья ещё и
ляпы содержит, жаль.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.