c语言 — errno 错误信息

一、错误标号

    errno 本质上是一个 int 类型的变量用于存储错误编号,但是需要注意的是,并不是执行所有的系统调用或 C 库函数出错时,操作系统都会设置 errno。

官方介绍:

The   header file defines the integer variable errno, which is
set by system calls and some library functions in the event of an error
to indicate what went wrong

头文件:

#include 

打开一个不存在的文件,测试代码如下:

#include 
#include 


int main (int argv,char *argc[])
{
        FILE * pFile;
        pFile = fopen ("test.txt","r");
        if (pFile == NULL)
                printf ("errno=%d\n",errno);
        return 0;
}

测试结果:

2722fdf026eb533f4f12ca00ab308bab.png

官方手册的错误码的介绍:

c语言 — errno 错误信息_第1张图片

二、错误信息

strerror :返回errno错误编号转换为对应的错误信息字符串

头文件:

#include 

原型:

char *strerror(int errnum);

测试代码:

#include 
#include 
#include 
int main (int argv,char *argc[])
{
        FILE * pFile;
        pFile = fopen ("test.txt","r");
        if (pFile == NULL)
        {
                printf ("errno=%d\n",errno);
                printf ("test.txt file unexist: %s\n",strerror(errno));
        }
        return 0;
}

测试结果:

b72f5ee83e6f42ffd096a426912cba86.png

三、其它

perror :打印系统错误信息,在错误提示字符串信息之前,可加入自己的打印信息,也可不加,不加则传入空字符串即可。

原型:

void perror(const char *s);

返回值:void 无返回值。

头文件:

#include 

测试代码:

#include 
#include 
#include 
#include 
int main (int argv,char *argc[])
{
        FILE * pFile;
        pFile = fopen ("test.txt","r");
        if (pFile == NULL)
        {
                printf ("errno=%d\n",errno);
                printf ("test.txt file unexist: %s\n",strerror(errno));
                perror(NULL);
                perror("open err");
        }
        return 0;
}

测试结果:

c87abdb6b1fe87122e31cb85f81aa6bb.png

欢迎关注公众号:嵌入式学习与实践

你可能感兴趣的:(c语言,算法,开发语言)