strerror(打印错误信息)和perror(获得错误信息)
strerror
语法格式
返回类型是char*
都需要头文件 errno.h
这里是错误码 每一个错误码代表一个错误信息
错误码
对照的错误信息
每一种编译器在写的时候已经规定好了 错误码对应的错误信息都是什么
strerror把错误信息打印出来
插入
打开文件的代码
fopen
这里是fopen打开这个文件
当打开失败的时候会显示(返回)null
所以我们接受的如果是null 让他打印错误码
需要头文件 errno.h
打开失败的原因 没有这个文件 或者这个文件夹
这里是把错误码翻译成错误信息
perror
语法格式
返回类型是char*
都需要头文件 errno.h
这个函数的库函数
这里依旧会打印错误信息
perror是有能力直接打印错误信息的
所以perror相当于
这里不能不写 因为这里传参是需要一个字符串的 所以必须传一个字符串
哪怕是空字符串
但是空指针是不行的
代码的使用
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<errno.h>
//这里进行解释一下 这个函数是打印错误信息的函数
int main()
{//这里是打印出错误信息for (int i = 0; i < 10; i++)//这里举例是循环打印出前十个错误信息 这里错误信息的头文件是error 使用函数是strerror(){printf("%d: >%s\n", i, strerror(i));}//判断出错误举例FILE* PF = fopen("dsfsfdhgsaf", "r");//这里fopen是一个打开文件的函数 这里打开的是一个空文件 这里不是讲解的主要内容if (PF == NULL){printf("1 错误信息>%s\n", strerror(errno));//这里可以把strerror(errno)这里理解为是打印错误信息的固定代码perror("2 错误信息>");//这里是和printf类似于 这里是一个打印错误信息的函数 他等同于错误信息1 但是这里需要知道的是 这个//perror里面需要传递一个参数 因为这里是一个函数 函数的标准是需要接受一个文件的 传递一个空格也是可以的 return 1;//打印完错误信息返回程序}//fclose(PF);//这里的意思是关闭打开的文件 也不是讲解的重点return 0;
}
错误信息找不到文件