Chinaunix

标题: 进程在收到SIGKILL信号后调用了哪个函数退出? [打印本页]

作者: bigapple2008    时间: 2005-10-27 20:20
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
不知道是exit()还是_exit(),
我在一个小程序里用atexit()注册了个函数,是输入一句话。

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

其实对于这两个函数的区别也不是很清楚,请教这里的高手了。呵呵
作者: zalem    时间: 2005-10-27 20:23
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
SIGKILLl可以catch么?
作者: albcamus    时间: 2005-10-27 20:37
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
不行吧?SIGKILL和SIGSTOP都不成的。
atexit是正常退出时用的,被信号干掉的不算。
作者: flw10000    时间: 2005-10-27 23:27
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
exit()函数里面调用 _exit(),也就在exit()函数要处理一些文件描述符,I/O 缓冲等,以后才要调用 _exit(),如果你直接调用_exit(),那么就不进行上述的处理,程序直接退出了。
作者: frstq    时间: 2005-10-27 23:46
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
[quote]原帖由 "flw10000"]exit()函数里面调用 _exit(),也就在exit()函数要处理一些文件描述符,I/O 缓冲等,以后才要调用 _exit(),如果你直接调用_exit(),那么就不进行上述的处理,程序直接退出了。[/quote 发表:


作者: frstq    时间: 2005-10-27 23:49
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
应是_exit
atexit()此时不起作用,它也只是ANSI的库函数.
作者: soul_of_moon    时间: 2005-10-28 08:03
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
[quote]原帖由 "zalem"]SIGKILLl可以catch么?[/quote 发表:

当然不能!另外还有SIGSTOP
作者: bigapple2008    时间: 2005-10-28 09:43
标题: 进程在收到SIGKILL信号后调用了哪个函数退出?
偶不是要catch  SIGKILL啊,就是发个SIGKILL让它退出,然后看在退出的时候有没有执行atexit注册的处理函数。结果发现没,所以怀疑退出时是调用了_exit。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2