|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.12.2009, 10:33 | #1 |
Регистрация: 30.11.2009
Сообщений: 6
|
sigset(), сложный вопрос
Описание этой функции в man:
If sigset() is used and disp is the address of a signal handler, the system adds sig to the calling process's signal mask before executing the signal handler; when the signal handler returns, the system restores the calling process's signal mask to its state prior to the delivery of the signal. Здесь говорится о некой системе. Вопрос в следующем: какая именно часть системы имеется ввиду? Спасибо. |
05.12.2009, 11:28 | #2 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
ниразу не понял
|
05.12.2009, 13:20 | #3 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
sigset() используется для определения/переопределения обработчика сигнала. Собственно самими сигналами управляет операционная система, она же и вызывает действие, ассоциированное с данным сигналом. Все изменения - ТОЛЬКО в рамках данного процесса.
Рассмотрим параметры этой функции: Код:
Список всех сигналов можно посмотреть в справке, либо же в этой статье disp - это указатель на уже известное системе действие (SIG_DFL - действие по умолчанию или же SIG_HOLD и SIG_IGN, подробнее в мане), либо же свой метод-обработчик. Вот небольшой пример, показывающий, как задать обработчик для сигнала: Код:
|
05.12.2009, 14:20 | #4 |
Регистрация: 30.11.2009
Сообщений: 6
|
oleg kutkov, спасибо, но мой вопрос про механизм работы sigset(). Другими словами, что происходит при вызове этой функции на более низком уровне? Какая часть ядра системы меняет маску сигнала данной нити?
|
05.12.2009, 14:47 | #5 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
К сожалению я не владею данной информацией, т.к. не приходилось никогда разбираться с этим глубоко.
Но Вы всегда можете заглянуть в исходники ядра, благо они доступны, а конкретно в файл signal.c |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложный расчет З/П | VictorM | Microsoft Office Excel | 7 | 08.11.2009 16:51 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |
Сложный вопрос по звуку | Руслантус | Общие вопросы C/C++ | 6 | 31.03.2008 19:39 |
Сложный грид | pkv | БД в Delphi | 15 | 09.11.2007 14:08 |