我想在C程序退出时执行一个内务管理函数。我知道atexit()
可以帮助注册正常退出的函数,但不适用于SIGINT或SIGQUIT等信号。我不想为所有这些默认行为是终止程序的信号注册信号处理程序。我只是想注册一个函数,不管什么原因,它都会在程序终止前执行。在C语言中怎么做呢?
可以将c程序作为子进程运行吗?对于这个问题,您可以使用任何exec族函数。
如果您的子进程正常或异常终止,那么有更好的选项来查询子进程从父进程的退出状态。
根据,你应该能够调用你的函数在parent。
好吧,我不是一个C/c++开发人员,但看看这个问题,可能会帮助你。关闭钩子c++。在Java中有一个很好的方法,但是在C中我不认为有一个专门的函数来实现这个目的。
如果你已经知道你将接收什么类型的信号,你可以在c中编写一个信号处理程序。
Linux中的Ctrl + C中断事件处理一些额外的引用:https://www.gnu.org/software/libc/manual/html_node/Signal-Handling.html: ~:文本= 24% % 20 20信号处理、断开% 20的% 20 % 20电话% 20线。
对于windows,请查看以下链接:c++: SIGINT