strerror 函数的使用
strerror 函数的概述
char * strerror ( int errnum );
-
strerror 函数可以把参数部分错误码对应的错误信息的字符串地址返回来
-
在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在errno.h这个头⽂件中说明的,C语⾔程序启动的时候就会使⽤⼀个全局的变量errno来记录程序的当前错误码,只不过程序启动的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会将对应的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。
errno.h文件对应错误信息
- 每个错误码都对应一个错误信息
- 为了得到这些错误信息是什么,这个时候就会用到strerror 函数
strerror 函数的使用
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main()
{
//打印出1对应的错误信息
printf("1对应的错误信息:%s\n", strerror(1));
return 0;
}
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main()
{
for (int i = 0; i <= 10; i++)
{
printf("%d对应的错误信息: %s \n", i, strerror(i));
}
return 0;
}
strerror 函数的示例
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main()
{
FILE* pf = fopen("test.txt", "r");
//文件打开成功pf才会不为空
//文件中没有上述文件
//所以会产生错误信息
if (pf == NULL)
{
//打印出错误信息
printf("%s\n", strerror(errno));
return 1;//打开失败,停止
}
//打开成功
//读文件
fclose(pf);
return 0;
}
perror 函数
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main()
{
FILE * pFile;
pFile = fopen("unexist.ent", "r");
if (pFile == NULL)
{
perror("lisi");
}
return 0;
}