栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我的信号处理程序(引发异常)不会多次触发?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我的信号处理程序(引发异常)不会多次触发?

信号和异常互不相关。您正在使用的内容(从异步信号处理程序引发异常)只能在支持该功能的少数编译器之间移植,例如GCC和Intel C / C ++ with

-fnon-call-exceptions

就是说,您忘记做的是取消阻止信号:执行信号处理程序时,同一信号的传递被阻止,并且当信号处理程序因异常而退出时,它也不会变为未阻止状态。如下更改信号处理程序:

void SigactionHookHandler( int iSignal, siginfo_t * psSiginfo, void * psContext{   cout << "Signal Handler Exception Caught: std::exception -- signal : " << iSignal << " from SigactionHookHandler()" << endl;   sigset_t x;   sigemptyset (&x);   sigaddset(&x, SIGSEGV);   sigprocmask(SIG_UNBLOCK, &x, NULL);   throw std::exception();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号