繁体   English   中英

程序正常或异常退出时执行函数

[英]Execute a function when a program exits normally or abnormally

我想在 C 程序退出时执行一个内务处理函数。 我知道atexit()可以帮助注册正常退出的函数,但不适用于 SIGINT 或 SIGQUIT 等信号。 我不想为所有这些默认行为是终止程序的信号注册信号处理程序。 我只想注册一个函数,无论原因是什么,该函数都会在程序终止之前执行。 我怎样才能在 C 中做到这一点?

您可以将您的 c 程序作为子进程运行吗? 您可以为此使用任何 exec 系列函数。

如果您的子进程正常或异常终止,那么有更好的选项可以从父进程查询子进程的退出状态。

据此,您应该能够在父级中调用您的函数。

好吧,我不是 C/C++ 开发人员,但看看这个可能对你有帮助的问题。 关闭钩子 C++ 虽然在 Java 中有一种非常好的方法,但在 CI 中不认为有专门的功能来实现目的。

如果你已经知道你将接收到什么类型的信号,你可以在 c 中编写一个信号处理程序。

对于 Linux,请检查此答案:Linux 中的Ctrl + C 中断事件处理

一些额外的参考: https : //www.gnu.org/software/libc/manual/html_node/Signal-Handling.html# :~: text=24%20Signal%20Handling,disconnection%20of%20a%20phone%20line

对于 Windows,请检查以下链接: C++: Continue execution after SIGINT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM