Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249813
  • 博文数量: 51
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 575
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-22 13:49
文章分类
文章存档

2009年(1)

2008年(13)

2007年(7)

2006年(30)

我的朋友

分类:

2006-11-29 23:10:54

1、abort
定义:

#include <stdlib.h>
void abort(void);


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

2、assert宏
原型:

#include<assert.h>
void assert(int expression);


作用:计算 expression的值,若其返回0(假),则向 stderr打印出错信息,并调用 abort终止程序。

使用注意事项:assert一般在开发阶段用于调试。为防止定义NEBUG后assert被禁用,最好不要直接向assert进行输入,而是如下所示:

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



3、exit
原型:

#include <stdlib.h>
void exit(int status);


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

4、atexit
原型:

#include<stdlib.h>
int atexit(void (*function)(void));


作用:注册一个函数,这个函数可以定义一些操作,用来在程序正常退出时执行之。atexit注册成功则返回0,否则返回1;可以用“,”隔开注册多个函数,执行顺序为最左边的最后执行。

5、errno变量:
定义:

#include <errno.h>;
int errno;


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

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

6、strerror
原型:

#include <string.h>
char *strerror(int errnum);


作用:把errno转换成标准的出错信息。例如:

ps = strerror(ENOENT);


则指针ps指向的字符串为"No such file or directory "等。

7、perror
原型:

#include <stdlib.h>
#include <errno.h>
void perror(const char *s);


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

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


阅读(988) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~