使用信号处理程序的正确方法是什么?
我从这个问题中看到了下面的代码,想知道为什么还需要放入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
}