免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sublx
打印 上一主题 下一主题

[函数] [见鬼了系列]关于sigaction 和段错误相关! [复制链接]

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
11 [报告]
发表于 2012-11-07 00:14 |只看该作者
sublx 发表于 2012-11-07 00:03
回复 6# zylthinking

act.sa_flags &= ~0x04000000;


你只要知道, 一旦 act.sa_flags & 0x04000000 != 0, sa_restorer 就将被视作一段机器指令, 会被内核在 sig_handle 返回后执行即可, 你代码中  sa_restorer 本来就是随机值, 还让内核执行, 当然会 crash

论坛徽章:
1
2015年亚洲杯之巴林
日期:2015-02-05 20:34:47
12 [报告]
发表于 2012-11-07 00:26 |只看该作者
回复 11# zylthinking


    好像我看了好多例子,都没用到sa_restorer 这个字段。非常感谢!

论坛徽章:
1
2015年亚洲杯之巴林
日期:2015-02-05 20:34:47
13 [报告]
发表于 2012-11-07 00:33 |只看该作者
回复 10# zylthinking

还有sa_flags 虽然是一个随机值,但是这个字段,是不是主要用于SA_RESTART重启被中断的操作、SA_INTERRUT、SA_RESETHAND等行为而已,应该不至于段错误吧?可能还是你说的那个sa_restorer 这个原因?不过很多介绍sigaction用法的都不用初始化或者操作这个字段。   

论坛徽章:
1
2015年亚洲杯之巴林
日期:2015-02-05 20:34:47
14 [报告]
发表于 2012-11-07 00:41 |只看该作者
回复 11# zylthinking

我man了一下 sigaction 关于sa_restorer的描述:

The sa_restorer element is obsolete and should not be used.  POSIX does
       not specify a sa_restorer element.

我察!那估计这个段错误还是由于sa_flags没赋值引起的调用完sig_handler后的无定义操作造成的?

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP