Как правильно использовать обработчики сигналов?
Я видел приведенные ниже коды из этого вопроса , и мне было интересно, почему вам все еще нужно поместить signal(SIGSEGV,sig_func);
внутри sig_func? Не создаст ли это бесконечный цикл, когда процесс получит сигнал SIGSEGV?
void sig_func(int sig)
{
write(1, "Caught signal 11\n", 17);
signal(SIGSEGV,sig_func);
}
int main()
{
signal(SIGSEGV,sig_func); //Install the signal handler
//Do work here
}