gpt4 book ai didi

使用信号处理程序的正确方法

转载 作者:太空狗 更新时间:2023-10-29 11:05:36 24 4
gpt4 key购买 nike

使用信号处理程序的正确方法是什么?

我从这个 question 看到了下面的代码并且想知道为什么您仍然需要将 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
}

最佳答案

signal manual说:

Finally, if the handler is set to a function sighandler then first either the handler is reset to SIG_DFL or an implementation-dependent blocking of the signal is performed and next sighandler is called with argument signum.

signal 的重复调用用于在它(可能)重置为 SIG_DFL 后重新安装自定义处理程序。

关于使用信号处理程序的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com