[英]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.