|
|
Компьютеры - Сигналы (UNIX) - SA_SIGINFO24 мая 2011
Оглавление: 1. Сигналы (UNIX) 2. Посылка сигналов 3. Классификация сигналов 4. SA_SIGINFO
Обычно обработчик сигнала получает только один аргумент номер сигнала. Если при задании обработчика сигнала) указать опцию SA_SIGINFO, то в обработчик будут переданы ещё два аргумента:
- указатель на структуру
siginfo_t , включающую:
- битовую маску дополнительных «кодов сигнала», определяющих причину его возникновения;
- идентификатор процесса, пославшего сигнал;
- эффективный идентификатор пользователя, от имени которого выполняется процесс, пославший сигнал;
- адрес инструкции, в которой возникло исключение;
- и т. п.
- указатель на «машинный контекст» на момент возникновения сигнала.
Большинство дополнительных кодов специфичны для каждого сигнала. Коды, общие для всех сигналов:
Код |
Описание |
SI_USER |
Сигнал послан функцией kill |
SI_QUEUE |
Сигнал послан функцией sigqueue |
SI_TIMER |
Сигнал послан по истечении времени, установленного функцией timer_settime |
SI_ASYNCIO |
Сигнал послан по завершении запроса на «асинхронный ввод-вывод» |
SI_MESGQ |
Сигнал послан по появлению сообщения в пустой «очереди сообщений Unix» |
Просмотров: 3428
|