开发者社区> 问答> 正文

关于主线程收不到信号的问题

在一个应用中,注册了信号的处理函数,并添加了相应的处理。

主程序中,同时也调用了msgrcv接口(工作在阻塞状态下)。程序运行在前台,当按下ctrl+c的时信号处理函数并没有收到该信号,而是msgrcv收到信号中断退出了。这样的话,信号处理函数就没有什么作用了。

针对这个问题,大家如何看,又如何处理?

展开
收起
a123456678 2016-06-06 19:37:48 1841 0
1 条回答
写回答
取消 提交回答
  • 我个人认为,信号处理方式应该不是按照正常的消息处理的,应该属于软中断的方式。
    如果单纯的想处理ctrl+c的消息的话,使用signal函数就是了,而且根据该还是的调用方式,将处理函数与信号绑定,以回调的方式进行调用,那么信号的产生方式大概就是软中断。所以使用阻塞态也不一定可以捕获到。

    2019-07-17 19:29:19
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载