我刚刚遇到一些代码,它使用 Kill 系统调用向应用程序发送 SIGSEGV 信号。其背后的理由是,这将迫使应用程序进行核心转储并退出。这对我来说似乎很错误,这是正常做法吗?
如果您希望生成核心转储,SIGQUIT 是发送到程序的正确信号。kill
是发送信号的正确命令行程序(当然它的名字很糟糕,因为并非所有信号都会杀死该程序)。
请注意,您不应向程序发送随机信号,并非所有信号都会产生核心转储。其中许多将由程序本身处理,或者被消耗、被忽略,或者引发其他处理。因此发送 SIGSEGV 是错误的。
海湾合作委员会 说:http://www.gnu.org/s/libc/manual/html_node/Termination-Signals.html
POSIX/Unix 说:http://pubs.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)