C++如何判断是否被第三方杀死或破坏了程序

问题描述 投票:0回答:1

我们知道,在Linux-Unix的世界里,我们可以在终端ctrl+C打断前台运行的程序,结束程序。

我怎么知道在 C++ 中第三方破坏或强行杀死 (

kill -9
) 程序?

我是否必须不断检查线程的某些内容?当程序被破坏时,我必须在我的程序中返回退出状态 130,当程序被杀死时,我必须返回退出状态 140。

c++ linux unix status
1个回答
4
投票

可以捕获和处理通过

kill()
发送的一些信号。有些不能(比如
SIGKILL
,这是
kill -9
的结果)。你的程序只是被内核终止和清理——它没有any机会注意到发生了什么或以任何方式对它做出反应。从您的程序的角度来看,这相当于用户从计算机上拔下电源 - 程序就像头部中弹一样死了。

© www.soinside.com 2019 - 2024. All rights reserved.