目录
strerror
函数原型
参数详解
返回值详解
函数讲解
strerror
????????返回错误码,所对应的错误信息
函数原型
char *strerror( int errnum );
参数详解
返回值详解
?strerror函数就是返回这些错误码所对应错误信息的字符串起始地址给返回过来
什么是错误码?当我们在调用库函数失败的时候,就会把错误信息放在一个全局的变量errno(错误码)中。而错误码可能是0 、1 、2 、3 、4(这些数字就类似于网面错误信息‘404’一样)
?下面展示一下这些错误码的所对应的错误信息
int main()
{
printf("%s\n", strerror(0));//没有错误信息
printf("%s\n", strerror(1));//操作被拒绝
printf("%s\n", strerror(2));//没有这个文件或文件夹
printf("%s\n", strerror(3));//没有这个进程
return 0;
}
函数讲解?
? ? ? ? 下面我将用malloc函数返回的错误信息演示strerror函数使用(malloc向堆区申请内存)
我把INT_MAX传给malloc函数,使得malloc函数开辟空间失败返回NULL,同时错误信息会放到全局变量errno中。用strerror函数解析错误信息
INT_MAX是整型最大值,而用INT_MAX这个符号需要调用limits.h头文件
errno是整型全局变量,存放错误信息,使用errno需要调用errno.h头文件
代码演示如下
#include<stdio.h>
#include<string.h>
#include<limits.h>
#include<errno.h>
int main()
{
int* p = (int*)malloc(INT_MAX);
if (p == NULL)//malloc开辟内存失败会返回一个空指针
{
printf("%s\n", strerror(errno));
return 1;//失败返回1
}
//...
return 0;//成功返回0
}
?
|