免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3891 | 回复: 7
打印 上一主题 下一主题

[函数] 进程在收到SIGKILL信号后调用了哪个函数退出? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-27 20:20 |只看该作者 |倒序浏览
不知道是exit()还是_exit(),
我在一个小程序里用atexit()注册了个函数,是输入一句话。

然后让它在后台运行,给它发了个kill -SIGKILL 信号。结果那句话没输出,难道说退出时不是调用了exit()?

其实对于这两个函数的区别也不是很清楚,请教这里的高手了。呵呵

论坛徽章:
0
2 [报告]
发表于 2005-10-27 20:23 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

SIGKILLl可以catch么?

论坛徽章:
0
3 [报告]
发表于 2005-10-27 20:37 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

不行吧?SIGKILL和SIGSTOP都不成的。
atexit是正常退出时用的,被信号干掉的不算。

论坛徽章:
0
4 [报告]
发表于 2005-10-27 23:27 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

exit()函数里面调用 _exit(),也就在exit()函数要处理一些文件描述符,I/O 缓冲等,以后才要调用 _exit(),如果你直接调用_exit(),那么就不进行上述的处理,程序直接退出了。

论坛徽章:
0
5 [报告]
发表于 2005-10-27 23:46 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

[quote]原帖由 "flw10000"]exit()函数里面调用 _exit(),也就在exit()函数要处理一些文件描述符,I/O 缓冲等,以后才要调用 _exit(),如果你直接调用_exit(),那么就不进行上述的处理,程序直接退出了。[/quote 发表:

论坛徽章:
0
6 [报告]
发表于 2005-10-27 23:49 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

应是_exit
atexit()此时不起作用,它也只是ANSI的库函数.

论坛徽章:
0
7 [报告]
发表于 2005-10-28 08:03 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

[quote]原帖由 "zalem"]SIGKILLl可以catch么?[/quote 发表:

当然不能!另外还有SIGSTOP

论坛徽章:
0
8 [报告]
发表于 2005-10-28 09:43 |只看该作者

进程在收到SIGKILL信号后调用了哪个函数退出?

偶不是要catch  SIGKILL啊,就是发个SIGKILL让它退出,然后看在退出的时候有没有执行atexit注册的处理函数。结果发现没,所以怀疑退出时是调用了_exit。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP