分类: LINUX
2010-09-20 14:50:29
C标准定义了两个函数,它们帮助打印出错信息。
#include
char* strerror(int errnum); // 返回值:指向消息字符串的指针
此函数将errnum(它通常就是errno值)映射为一个出错信息字符串,并且返回此字符串的指针。
perror函数基于errno的当前值,在标准出错上产生一条出错消息,然后返回。
#include
void perror(const char* msg);
它首先输出由msg指向的字符串,然后是一个冒号,一哥空格,接着是对应于errno值的出错信息,最后一个是换行符。
实例
========================================================
#include “apue.h”
#include
int main(int argc, char *argv[])
{
fprintf(stderr, “EACCES: %s\n”, strerror(EACCES));
errno = ENOENT;
perror(argv[0]);
exit(0);
}
---------------------------------------------------------
执行结果:
$ ./a.out
EACCES: Permission denied
./a.out: No such file or directory
注意: 我们将程序名(argv[0], 其值是./a.out)作为参数传递给perror.这是一个标准的UNIX惯例.
摘自《UNIX环境高级编程(第二版)》 PAGE 11