linux C复习:linux下的错误处理方式
来源:互联网 发布:f16 性能数据 编辑:程序博客网 时间:2024/06/07 03:24
1、如果一个函数调用失败返回-1,正常情况下不可能返回-1
2、如果函数返回空指针(NULL),则表示出错。 如:FILE *f = fopen();
//如果f == NULL,则表示文件打开失败
3、函数不会返回结果,由参数返回。函数返回0表示成功执行,返回-1表示执行失败。
#include <stdio.h>#define IN#define OUTint add(IN int n ,OUT int *p){ if(n <=0 ) return -1; int sum = 0; int i = 1; for(;i <=n ;i++) sum += i; *p = sum; return 0;}int main(){ int res = 0; if(-1 == add(100,&res)) printf("error\n"); else printf("sucess:%d\n",res);}
4、如果函数返回类型为void表示函数不可能失败。
errno.h处理函数执行失败的原因:
头文件:#include<errno.h>
在头文件中有一个全局变量int errno:保存函数执行失败的原因,以fopen为例:
#include <stdio.h>#include <errno.h>int main(){ FILE *f = fopen("hello.txt","r"); if(f == NULL) { puts("文件打开失败"); printf("失败原因是%d\n",errno); } puts("===============");}
//函数strerror()可以将errno保存的值转变为字符串:
if(f == NULL) { puts("文件打开失败"); printf("失败原因是%d\n",errno); printf("错误源应是:%s\n",strerror(errno)); }
//----------------------------printf()格式输出中存在%m:表示取errno的值并转换为字符串
printf("错误的原因为:%m\n") //注意格式
错误原因:No such file or directory
//--------------------------可以使用perror()函数将错误原因直接打出到控制台
perror("错误原因:");
0 0
- linux C复习:linux下的错误处理方式
- linux c 错误处理
- linux C 异常处理的方式
- linux 下的信号处理方式
- Linux下的错误处理机制
- Linux下段错误的处理方法
- linux下EINTR的错误处理
- linux 下 C 编程 C版的try catch 捕捉段错误和异常处理
- Linux下C程序使用多线程方式处理实例
- C语言linux下实现多语言以及错误处理
- LINUX 下的C程序错误号
- Linux C语言错误处理
- Linux C语言错误处理
- Linux - 错误处理 代码(C)
- 复习 Linux下C语言开发环境
- linux下asm错误处理
- Linux下各种错误处理
- linux中C下管理wifi无线连接wpa_supplicant的处理方式
- Codeforces Round #257 (Div. 2) —— B
- Android 图片异步加载的体会,SoftReference已经不再适用
- Javascript/jquery String 转int型
- 更改sphinx0.9.9日志的时间格式
- 花了一天时间了解嵌入式,硬件,软件,感慨良多
- linux C复习:linux下的错误处理方式
- 2014-08-13 14:04:58经验
- wordpress后台和主题加载谷歌字体慢的解决办法
- Generate Parentheses
- html中一级菜单的制作
- BZOJ 1689: [Usaco2005 Open] Muddy roads 泥泞的路
- iOS7和iOS6适配 q
- 开源的网络服务框架:Apache Etch 1.4.0 发布
- 代码中setProgressDrawable