为什么该过程处理阻塞信号?
考虑以下程序:
在终端中运行该程序后,当我按下ctrl-c时,我总是得到“处理2”作为输出,但我希望没有输出,因为SIGINT先前被阻止了.我错误地阻止了SIGINT吗?通过假设在从内核模式进入用户模式的过程中不会处理阻塞信号,我是否误解了阻塞信号意味着什么? 最佳答案 @Useless正确地回答了这个问题,说明你是通过将一个未初始化的指针传递给sig *函数来调用UB的. 至于为什么它的工作原理并且没有崩溃或者没有阻止SIGINT如果你添加这条线就可以清楚 –
这很可能是打印(零)或0. 幸运的是,未初始化的变量设置为NULL,并且来自
因此,您对SIGINT的阻止实际上被忽略了.但是,如果你不幸运的话,你也可能会看到崩溃或其他一些(甚至是正确的行为). (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux System V 消息队列的内核结构和msgget、msgctl 函数
- linux – 在Keepalived.conf中记录详细程度?
- iPhone 4S 5.1.1降级5.0.1教程 99.9%成功
- 使用gdb进行事后内存泄漏搜索(和分析)
- c – CLion IDE:在Windows上使用ssh作为环境工具链而不是M
- node.js中的fs.unlinkSync方法使用说明
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- 天天酷跑坐骑礼包多少钱 天天酷跑坐骑礼包价格和内容
- c – SIGXFSZ是由内核发送的,除非有什么内容打印到stdout?
- 宝刀不老 Nexus4将可运行Android L