应用程序如何发现它刚刚开始终止?我可以使用信号处理程序吗?
答案 0 :(得分:0)
您可以尝试--->
int raise (int sig)
在SIGTERM
或SIGKILL
被提升时处理!!
答案 1 :(得分:0)
您还可以注册退出进程时要调用的函数。见man atexit
答案 2 :(得分:0)
您可以为SIGINT,SIGKILL和SIGSEGV安装信号处理程序。在信号处理程序中,您可以进行堆栈转储,以便稍后调试应用程序。在信号处理程序中,将SIGINT,SIGKILL和SIGSEGV的处置设置回默认值。
答案 3 :(得分:0)
启用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