linux c开发: 在程序退出时进行处理

linux c开发: 在程序退出时进行处理,第1张

有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源。c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理。这里总结一下这些情况,如何获取一个统一的退出处理的点,说白了就是写一个回调函数,让他在程序正常或异常退出时调用。

这个例子里面其实是将异常退出处理和正常退出处理结合起来了。对于SIGTERM(即kill进程)和SIGINT(即ctrl-c结束前台进程),我们当做是正常退出,在其信号处理函数里面,直接调用了exit(0),而exit(0)又会被server_on_exit捕获到。对于异常退出也是类似,只是调用了exit(-1)表示是异常的。同时异常退出我们会打印出当前的进程堆栈信息,server_backtrace的实现下一篇再说。另外注意的是SIGKILL信号是无法捕获的。而调用abort导致的退出,也是通过SIGABRT信号捕获到进行处理了。其他几种异常退出的信号也是比较常见,一并捕获到进行处理。这样对于异常退出,我们即可统一的log堆栈信息,又可直接继续正常退出时的处理流程了。

1、FILE *fp

fp=fopen("c:\\read.txt","w")

if(!fp) exit(0)

fprintf(fp,"%d,%d",a,b)

2、FILE *out,*in

//下面是把三个变量存储到文件中

out=fopen("out.txt","w")

fprintf(out,"%d %d %c",a,b,c)

扩展资料:

用LOCAL定义的变量或数组是局部变量或数组,局部变量或数组只能在创建它们的程序中使用和修改,不能被更高层次或者更低层次的程序访问,在它们所属的程序停止运行时,局部变量和数组将被释放。

用PRIVATR定义的变量和数组为私有数组。通过PRIVATE可将调用程序中定义的变量和数组在当前程序中隐藏起来,这样用户变可以在当前程序停止运行,所以被声明为私有的变量和数组均可重新被访问。

参考资料来源:百度百科-内存变量

Windows系统关闭软件有以下几种方法:

所需材料:WIN7系统演示。

一、Windows系统关闭软件的第一种方法:最常用关闭软件的方法为直接点击软件右上角的“关闭”按钮关闭该软件。

二、Windows系统关闭软件的第二种方法:部分软件会在状态栏显示该软件的图标,鼠标右键点击该图标,d出的菜单内点击“退出XXXX软件”进行关闭。

三、Windows系统关闭软件的第三种方法:保持需要关闭的软件在最前端,这时可以同时按下Alt键+F4键关闭该软件,部分软件使用该快捷键后会d出是否关闭的提醒窗口,点击“是”即可。

四、Windows系统关闭软件的第四种方法:基本上大多软件打开后,会在状态栏上面显示该软件,鼠标右键点击该软件的标签,d出菜单内点击“关闭窗口”即可关闭。

五、Windows系统关闭软件的第五种方法:这种方法经常用到那么未响应的软件上面, *** 作方法为同时按下Ctrl+Shift+Esc键打开任务管理器。

六、打开任务管理器后,找到需要关闭的软件,点击选中该软件,然后点击“结束任务”即可关闭该软件。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10960103.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存