Операционная система UNIX
Часть 54 из 155 Информация о книге
В поле
хранится номер сигнала. Полеsi_signoимеет следующий смысл: если его значение меньше или равно нулю, значит сигнал был отправлен прикладным процессом, в этом случае структураsi_codeсодержит также следующие поля:siginfo_t
pid_t si_pidИдентификатор процесса PID uid_t si_uidИдентификатор пользователя UID которые адресуют процесс, пославший сигнал; если значение
больше нуля, то оно указывает на причину отправления сигнала. Список возможных значенийsi_codeдля некоторых сигналов, соответствующих полюsi_code, приведен в табл. 2.19si_signoТаблица 2.19. Значения поля si_code структуры siginfo_t для некоторых сигналов
Значение поля si_signoЗначение поля si_codeОписание SIGILLПопытка выполнения недопустимой инструкции ILL_ILLOPCНедопустимый код операции (opcode) ILL_ILLOPNНедопустимый операнд ILL_ADRНедопустимый режим адресации ILL_ILLTRPНедопустимая ловушка (trap) ILL_PRVOPCПривилегированный код операции ILL_PRVREGПривилегированный регистр ILL_COPROCОшибка сопроцессора ILL_BADSTKОшибка внутреннего стека SIGFPEОсобая ситуация операции с плавающей точкой FPE_INTDIVЦелочисленное деление на ноль FPE_INTOVFЦелочисленное переполнение FPE_FLTDIVДеление на ноль с плавающей точкой FPE_FLTOVFПереполнение с плавающей точкой FPE_FLTUNDПотеря точности с плавающей точкой (underflow) FPE_FLTRESНеоднозначный результат операции с плавающей точкой FPE_FLTINVНедопустимая операция с плавающей точкой FPE_FLTSUBИндекс вне диапазона SIGSEGVНарушение сегментации SEGV_MAPPERАдрес не отображается на объект SEGV_ACCERRНедостаточно прав на отображаемый объект SIGBUSОшибка адресации BUS_ADRALNНедопустимое выравнивание адреса BUS_ADRERRНесуществующий физический адрес BUS_OBJERRАппаратная ошибка, связанная с объектом SIGTRAPЛовушка TRAP_BRKPTПроцессом достигнута точка останова TRAP_TRACEЛовушка трассирования процесса SIGCHLDЗавершение выполнения дочернего процесса CLD_EXITEDДочерний процесс завершил выполнение CLD_KILLEDДочерний процесс был "убит" CLD_DUMPEDНенормальное завершение дочернего процесса CLD_TRAPPEDТрассируемый дочерний процесс находится в ловушке CLD_STOPPEDВыполнение дочернего процесса было остановлено CLD_CONTINUEDВыполнение остановленного дочернего процесса было продолжено SIGPOLLСобытие на опрашиваемом устройстве POLL_INПоступили данные для ввода POLL_OUTСвободны буферы данных POLL_MSGСообщение ожидает ввода POLL_ERRОшибка ввода/вывода POLL_PRIВысокоприоритетные данные ожидают ввода POLL_HUPУстройство отключено