xecutando o manipulador de sinal padrão
Eu escrevi um aplicativo em que registrei um número de manipulador de sinais para diferentes sinais no Linux. Após o processo receber o sinal, o controle é transferido para o manipulador de sinal que eu havia registrado. Neste manipulador de sinal, faço algum trabalho que preciso fazer e, em seguida, gostaria de chamar o manipulador de sinal padrão, ou seja,SIF_DFL
ouSIG_IGN
. Contudo,SIG_DFL
eSIG_ING
são macros que se expandem para os valores numéricos 0 e 1 respectivamente, que são endereços de função inválido
Existe alguma maneira de chamar ações padrão, ou seja,SIG_DFL
ouSIG_IGN
?
Para obter o efeito deSIG_DFL
ouSIG_ING
chamo exit (1) e não faço nada, respectivamente. Mas para sinais comoSIGSEGV
Eu também gostaria de ter core dump. Em geral, eu gostaria que meu comportamento padrão fosse o mesmo queSIG_DFL
e ignora o mesmo comportamentoSIG_IGN
, como o sistema operacional faria.