免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lsupper
打印 上一主题 下一主题

最近在弄C++方面,突然想到C的话,出现异常情况,如何善后? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-11-12 21:58 |只看该作者
回复 7# maxxfire


    捕获信号?能否详细点介绍?

论坛徽章:
0
12 [报告]
发表于 2010-11-12 22:00 |只看该作者
回复 8# w_anthony


    你说的这些,我知道...这个是编程的一些规范...我并没有说不遵守...我强调的是...C中发生一些未知错误的时候,如何正常的释放资源(socket、数据库连接...)或者记录下日志?

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
13 [报告]
发表于 2010-11-13 00:02 |只看该作者

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
14 [报告]
发表于 2010-11-13 00:15 |只看该作者
保证函数的健壮

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
15 [报告]
发表于 2010-11-13 00:45 |只看该作者
setjmp/longjmp

论坛徽章:
0
16 [报告]
发表于 2010-11-13 07:28 |只看该作者
本帖最后由 unistd 于 2010-11-13 08:22 编辑

通过函数返回值来判断函数是否出错,配合errno来进一步处理。。
就这么简单。。。。

论坛徽章:
0
17 [报告]
发表于 2010-11-13 10:25 |只看该作者
回复 16# unistd


    假如出现崩溃...当然尽量保证....但是出现的时候,如何做到安全的释放资源呢?

论坛徽章:
0
18 [报告]
发表于 2010-11-13 11:25 |只看该作者
一般情况下,都是先判断是否能用,然后再用的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
19 [报告]
发表于 2010-11-13 11:47 |只看该作者
发生错误时能回滚是吧?

首先, 是否需要如此robust的处理错误?
写C的, 习惯于直接exit(xxx)的大有人在。

lz可以去和这些人讨论。


如果确定某些情况需要这样处理错误, 手写吧, 没跑的。
别指望C语言提供什么自动化的功能。

C++的一些习惯要改一下, 比如多出口;在C里面, 要健壮的处理错误, 函数还是单入口单出口容易写一些。

论坛徽章:
0
20 [报告]
发表于 2010-11-13 11:53 |只看该作者
回复 17# lsupper


   崩溃的时候,程序就退出了,操作系统自然就说释放该程序的资源。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP