ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C 错误处理

2019-10-24 22:00:10  阅读:299  来源: 互联网

标签:perror 错误 errno exit stderr EXIT 错误处理


参考链接:https://www.runoob.com/cprogramming/c-error-handling.html
遇到错误,大多数C或者UNIX会返回1或者NULL,同时会设置一个errno,这个errno是全局变量
所以你可以通过检查返回值是否代表错误
C语言提供了perror()、和strerror()来显示与errno相关的信息
引入头文件

#include <errno.h>
#include <string.h>

perror("自定义的提示信息")显示你传给它的字符串,后面跟一个冒号,然后跟上errno值对应的文本表示形式(即出错信息)
strerror(number) 返回一个指针,指针指向errno为number时所对应的文本提示信息

extern int errno;
...
fb=fopen("no_exist_filename","rb");
if(fb==1){
    fprintf(stderr,"错误号:%d\n",errno);
    perror("通过 perror 输出错误");
    fprintf(stderr,"打开文件错误:%s",strerror(errno));
}

#输出
错误号: 2
通过 perror 输出错误: No such file or directory
打开文件错误: No such file or directory

**注意应该通过stderr文件流来输出所有的错误

抛出异常的方式

//引入头文件
#include <stdlib.h>

//异常的时候
exit(-1);
//正常的时候
exit(0)

通常情况下,程序运行成功的时候会带有值EXIT_SUCCESS,这是个宏,它被定义为0,而如果程序运行中出现了错误,退出程序时带有状态值EXIT_FAILURE,他被定义为-1;
所以上面的可以写为

//异常
exit(EXIT_FAILURE);
//正常
exit(EXIT_SUCCESS);

标签:perror,错误,errno,exit,stderr,EXIT,错误处理
来源: https://www.cnblogs.com/Gaoqiking/p/11735218.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有