[英]How to detect program termination in C/Linux?
应用程序如何发现它刚刚开始终止? 我可以为此使用信号处理程序吗?
启用atexit()
。 当程序正常终止时,它会调用一个函数。
示例代码:
#include <stdio.h>
#include <stdlib.h>
void funcall(void);
void fnExit1 (void)
{
printf ("Exit function \n");
}
int main ()
{
atexit (fnExit1);
printf ("Main function start\n");
funcall();
printf ("Main function end\n");
return 0;
}
void funcall(void)
{
sleep(2);
exit(0);
}
输出:
Main function start
Exit function
你可以试试--->
int raise (int sig)
并在引发SIGTERM
或SIGKILL
时进行处理!!
您还可以注册一个在进程退出时调用的函数。 见man atexit
您可以为 SIGINT 、SIGKILL 和 SIGSEGV 安装信号处理程序。 在信号处理程序中,您可以进行堆栈转储,以便稍后调试应用程序。在信号处理程序中,将 SIGINT 、SIGKILL 和 SIGSEGV 的配置设置回默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.