旅途

如果想飞得高,就该把地平线忘掉

常见出错处理函数-----好

1、abort 定义:

#include void abort(void);

作用:强行终止程序 (异常终止);如果当前shell不限制ulimit,将会core dump。

2、assert宏 原型:

#include void assert(int expression);

作用:计算 expression的值,若其返回0(假),则向 stderr打印出错信息,并调用 abort终止程序。 使用注意事项:assert一般在开发阶段用于调试。为防止定义NEBUG后assert被禁用,最好不要直接向assert进行输入,而是如下所示:

p = malloc (sizeof (char) *100);

assert(p);

3、exit 原型:

#include void exit(int status);

作用:返回一个状态值给操作系统,status在stdlib.h中定义了EXIT_SUCCESS和EXIT_FAILURE。

4、atexit 原型:

#include int atexit(void (*function)(void));

作用:注册一个函数,这个函数可以定义一些操作,用来在程序正常退出时执行之。

atexit注册成功则返回0,否则返回1;可以用“,”隔开注册多个函数,执行顺序为最左边的最后执行。

5、errno变量:

定义: #include ; int errno;

作用:全局变量,Linux系统调用与大部分库函数设置该值,errno.h定义了其值对应的错误。例如ENOENT代表No such file or directory等。

函数perror可以打印相应的出错信息。 注意事项:很多函数返回并设置errno后并不会把之清0,如果调用一个可能在出错时设置errno的库函数的时候,最好先手动把errno清零。

6、strerror 原型:

#include char *strerror(int errnum);

作用:把errno转换成标准的出错信息。例如: ps = strerror(ENOENT); 则指针ps指向的字符串为"No such file or directory "等。

7、perror 原型:

#include #include void perror(const char *s);

作用:打印s所指的字符串和标准出错信息,相当于

printf("%s: %s\n", *s, strerror(errno));

posted on 2007-07-31 23:11 旅途 阅读(243) 评论(0)  编辑 收藏 引用 所属分类: Linux开发


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理