C语言中错误显示函数
有两个比较常用的函数,分别是strerror和perror。
strerror
头文件是string.h,原型为:
char *strerror(int errnum);
接受一个表示错误代码的整型值,返回错误代码对应的信息字符串;
perror
头文件是stdio.h,原型为:
void perror(const char *s);
该函数是把errno的错误映射为字符串,然后在前面拼接字符串s和一个冒号(应该是空格+冒号),最后在标准输出上显示。
测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
int main(int argc, char** argv)
{
int fd;
fd=open("file_not_exist", O_RDWR);
printf("ererno=%d\n",errno);
printf("strerror:%s\n",strerror(errno));
perror("perror");
exit(EXIT_SUCCESS);
}
执行的结果如下:

可以看到strerror的结果必须使用printf等才能在标准输出上显示,而perror直接显示,各有各的适用场景,perror相对来说简单高效一些,一个函数就能够把错误显示在标准输出上,而strerror则相对灵活一些,有些时候我们还可能要把错误信息提供到别的地方,例如显示在其他界面,或者写入日志、数据库等,这个时候就像处理字符串一样方便。

浙公网安备 33010602011771号