我们知道,在Linux-Unix的世界里,我们可以在终端ctrl+C打断前台运行的程序,结束程序。
我怎么知道在 C++ 中第三方破坏或强行杀死 (
kill -9
) 程序?
我是否必须不断检查线程的某些内容?当程序被破坏时,我必须在我的程序中返回退出状态 130,当程序被杀死时,我必须返回退出状态 140。
可以捕获和处理通过
kill()
发送的一些信号。有些不能(比如SIGKILL
,这是kill -9
的结果)。你的程序只是被内核终止和清理——它没有any机会注意到发生了什么或以任何方式对它做出反应。从您的程序的角度来看,这相当于用户从计算机上拔下电源 - 程序就像头部中弹一样死了。