目录
strerror
函数介绍:
举例:
使用案例:
优化:
perror:
strerror
函数介绍:
- 函数声明: char * strerror ( int errnum );
- 头 文 件:#include <string.h>
- 返 回 值: 返回值为char * 类型 。指向描述错误错误的错误字符串的指针。
原理:
- 在C语言的库函数中设计一些错误码,当我们库函数在调用的过程的中发生了各种错误,要记录下来,这时候记录的就是错误码。
- 注意,当出现一连续的错误时,返回的只有第一个错误码。
举例:
int main()
{int i = 0;for (i = 0; i < 10; i++){char * ret = strerror(i);printf("%d : %s\n", i , ret);}return 0;
}
将0~9作为错误码,并使用strerror将错误码中的错误信息打印出来。
使用案例:
//当库函数调用失败的时候,会讲错误码记录到errno这个变量
//errno是一个C语言的全局变量
//打开文件 - 读写文件之前,需要打开文件
//读取文件前,需要打开文件,如果要打开成功,需要文件是存在的
//如果文件不存在,则打开失败,fopen会返回NULL#include <string.h>
int main()
{FILE* pf = fopen("add.txt","r");if (pf == NULL){printf("打开文件失败,失败的原因:%s\n"strerar(errno));return 1;}else{printf("打开文件成功\n");}return 0;
}
输出结果:
优化:
- printf("打开文件失败,失败的原因:%s\n"strerar(errno));进行改造,变为perror("打开文件失败,失败的原因");二者的结果是一致的。
perror:
如果说strerror是读取错误码中的错误信息,那么perror是直接打印出错误码中的信息,这是二者之间最大的区别。
且perror();中是先打印出括号中的内容,随后在直接打印错误信息。