![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Goryachev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.2.2005 Где: Израиль Репутация: нет Всего: нет |
Ловлю SIGABRT в хандлере.
Возможно ли вернуть число при заканчивании сигнала обработчика? (в системму) |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
нет, можно только установить глобальную переменную
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Goryachev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.2.2005 Где: Израиль Репутация: нет Всего: нет |
MAKCim,
будет ли эта глобальная переменная видна в другом процессе, из которого я создаю этот процесс? |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
в Linux используется COW (Copy On Write) стратегия при создании процесса, это значит, что до попытки изменения (записи) порожденным процессом глобальной переменной, ее значение совпадает в обоих процессах (по сути это разделяемый read-only ресурс). При попытке записи порожденным процессом в эту переменную происходит #PF (страничное исключение): для этого процесса выделяется страница памяти, туда копируется содержимое страницы памяти, в которую он пытался записать данные и происходит перезапуск инструкции записи, которая вызвала #PF (mov например). Т. е я хочу сказать, что в родительском процессе изменения не будут видны Если у тебя идет работа именно с процессами, то используй IPC, например Message Queue т. е создается очередь сообщений, которая по мере вызова обработчиков сигналов заполняется в качестве ключа конкретного сообщения можно взять pid процесса
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Goryachev |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.2.2005 Где: Израиль Репутация: нет Всего: нет |
MAKCim,
спасибо за ответ, но эти техники я знаю. Меня интересовало, можно ли только по возвращённому с хандлера узнать, что вернулось. Потому, что по обычному выходу процесса, я получаю значение, возвращённое с процесса, 0 - 255 (байт). Я пренципиально не хотел пользоватся IPC, потому что создаёт лишний overhead. Но благодарю за ответ ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
а по другому с процессами не получится ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |