strerror
char * strerror ( int errnum );
返回错误码,所对应的错误信息。(是把错误码转化为对应的错误信息)
#include <errno.h>//必须包含的头文件
可通过往strerror的参数中放入不同的数,罗列出错误提示
for (int i = 0; i < 10; i++)
{
printf("%s\n", strerror(i));
}
结果:
使用库函数的时候
调用库函数失败时,都会设置错误码,该错误码放在errno变量中,需要引入头文件<errno.h>
使用实例:
#include <stdio.h>
#include <errno.h>
//errno会把错误码的首字符地址返回,再通过%s打印
FILE* fp = fopen("test.txt", "r"); //不存在该文件,返回空指针
if (fp == NULL)
{
printf("%s\n", strerror(errno)); //打印错误信息,No such file or directory
}
fclose(fp);
fp = NULL;
perror
#include <stdio.h>
void perror( const char *str );
perror()函数打印str(字符串)和一个相应的执行定义的错误消息到全局变量errno中.
1.首先把错误码转化为错误信息
2.打印错误信息(包含了自定义的信息)
与strerror的区别:strerror只是把错误码转为错误信息,要打印自己打印,perror则一步到位,即转化又直接打印
例子:
FILE* fp = fopen("test.txt", "r");
if (fp == NULL)
{
perror("fopen"); //打印结果:fopen: No such file or directory
return 1;
}
fclose(fp);
fp = NULL;