Chinaunix首页 | 论坛 | 博客
  • 博客访问: 241105
  • 博文数量: 38
  • 博客积分: 710
  • 博客等级: 上士
  • 技术积分: 315
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-06 10:52
文章分类

全部博文(38)

文章存档

2016年(1)

2015年(10)

2014年(1)

2013年(7)

2011年(9)

2010年(10)

我的朋友

分类: LINUX

2011-07-16 11:48:32

当linux中的C api函数发生异常时,一般会将errno变量(需include
errno.h)赋一个整数值,不同的值表示不同的含 义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题。但是errno是一个数字,代表的具体含义还要到 errno.h中去阅读宏定义,而每次查阅是一件很繁琐的事情。有下面几种方法可以方便的得到错误信息
(1)void perror(const char *s)
函数说明
perror ( )用来将上一个函数发生错误的原因输出到标准错误(stderr),参数s
所指的字符串会先打印出,后面再加上错误原因 字符串。此错误原因依照全局变量
errno 的值来决定要输出的字符串。
 1 #include
  2 #include
  3 #include
  4 int main()
  5 {      
  6         FILE *fp;
  7         fp =fopen("file","r");
  8         if(fp == NULL){
  9                 perror("error in open:");
 10                 exit(0);
 11         }
 12         return 0;
 13 }
zhangbo@zhangbo-desktop:~/unixpr$ ./a.out
error in open:: No such file or directory
zhangbo@zhangbo-desktop:~/unixpr$

(2) char *strerror(int errno)
将错误代码转换为字符串错误信息,可以将该字符串和其它的信息组合输出到用户界面例如
fprintf(stderr,"error in CreateProcess %s, Process ID %d
",strerror(errno),processID)
注:假设processID是一个已经获取了的整形ID
阅读(1264) | 评论(0) | 转发(1) |
0

上一篇:关于引用

下一篇:linux ctrl-[c,d,z]的作用

给主人留下些什么吧!~~