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则相对灵活一些,有些时候我们还可能要把错误信息提供到别的地方,例如显示在其他界面,或者写入日志、数据库等,这个时候就像处理字符串一样方便。

posted @ 2021-01-12 19:44  castor_xu  阅读(464)  评论(0编辑  收藏  举报