Я написал приложение, в котором я зарегистрировал номер обработчика сигналов для разных сигналов в Linux.
После того как процесс получает сигнал, управление передается обработчику сигнала, который я зарегистрировал. В этом обработчике я выполняю некоторую работу, которую мне нужно сделать, а затем я хотел бы вызвать обработчик сигнала по умолчанию i.e SIF_DFL
или SIG_IGN
.
Однако SIG_DFL
и SIG_ING
являются макросами, которые расширяются до числовых значений 0 и 1 соответственно, что является недопустимыми адресами функций.
Есть ли способ, которым я могу вызывать действия по умолчанию i.e SIG_DFL
или SIG_IGN
?
Чтобы достичь эффекта SIG_DFL
или SIG_ING
, я вызываю exit (1) и ничего не делаю, соответственно. Но для сигналов типа SIGSEGV
я также хотел бы иметь базовый дамп.
В общем, я бы хотел, чтобы мое поведение по умолчанию было таким же, как SIG_DFL
, и игнорировало поведение, подобное SIG_IGN
, как будет работать операционная система.