Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中捕获崩溃_C_Error Handling - Fatal编程技术网

在C中捕获崩溃

在C中捕获崩溃,c,error-handling,C,Error Handling,我目前正在用C语言开发一个程序,它必须无故障运行,因为它必须全天候运行。然而,由于安全原因(它可以控制高压),我希望它运行一个函数,在它崩溃时关闭一些东西。我之所以这样做是因为我想确保每当出现问题时,都会关闭电源 有没有办法开发一个“清理”功能,在代码崩溃时随时运行?我试图寻找其他有类似问题的人,但我很难找到他们 我希望有人能解决我的问题 亲切问候,, Tim您将分叉一个进程并调用,以等待退出状态。那么当操作系统崩溃时会发生什么呢?C中没有“崩溃”的概念,只有“未定义的行为”(google th

我目前正在用C语言开发一个程序,它必须无故障运行,因为它必须全天候运行。然而,由于安全原因(它可以控制高压),我希望它运行一个函数,在它崩溃时关闭一些东西。我之所以这样做是因为我想确保每当出现问题时,都会关闭电源

有没有办法开发一个“清理”功能,在代码崩溃时随时运行?我试图寻找其他有类似问题的人,但我很难找到他们

我希望有人能解决我的问题

亲切问候,,
Tim

您将分叉一个进程并调用,以等待退出状态。那么当操作系统崩溃时会发生什么呢?C中没有“崩溃”的概念,只有“未定义的行为”(google this)。您的代码在哪个平台上运行?您可以使用操作系统特有的函数,如
sigaction()
,为发送到进程崩溃的信号设置处理程序。但问题是,无论是什么原因导致了崩溃,都可能损坏了内存,以至于您无法依赖于当时能够做任何有用的事情。1)如果这对人类或设备有潜在危险,最好是裸机嵌入式系统,即MCU。如果没有,则使用控制关键I/O的MCU。在任何半现代MCU上,应有适当的功能支持故障保护操作。但这对这个网站来说太宽泛了。