当前位置: 代码迷 >> 综合 >> C标准库之三:errno.h
  详细解决方案

C标准库之三:errno.h

热度:45   发布时间:2023-11-17 02:38:49.0

一:概述

      errno.h是C标准库中的一个检查错误的头文件,以我个人的理解,它的内部一共定义了3个宏,分别是EDOM,ERANGE,errno.其中errno相当于一个全局变量,它可以被赋值,而C库中的每个模块都会包含这个errno.h头文件,那么errno这个可以被赋值的宏(不知道这样理解对不对,看了C标准库才做的理解),就相当于整个C标准库的全局变量,如果在使用某个模块的函数过程中发生了错误,这个errno宏就会在函数内部被赋予一个有含义的值,相当于一个错误代码,并且无论库的哪个模块或库函数都不会把errno设置为零。所以我们在使用这个模块的时候,只需要在一个库函数调用前将errno设置为零,然后在调用之后检查errno的值即可知道这个被调用的库函数有没有发生错误。而另外两个宏则被赋予为固定的错误类型,就像平常的宏一样表示一种特定的错误。(以上纯属个人看过C标准库之后的个人理解)

二:模块接口和解释

序号 解释
1 EDOM 特定含义的错误,在math.h 中表示域错误
2 ERANGE 特定含义的错误,在math.h 中表示溢出错误
3 errno 库函数中用来盛放错误代码的宏

三:常用接口用法举例

     这几个宏的用法已经在概述中说了,就是在使用库函数时候,在使用之前把errno置为零,然后在使用之后就去检测,其返回值,是不是被库函数赋予了错误代码,当然我们既然包含了errno.h这个头文件当然就可以定义自己的错误代码,也就是我们自己定义的函数内部也可以给errno赋值,然后在使用的时候去判断,前提是错误代码我们需要自己定义,每一个有固定的含义,这样就很方便了。
  相关解决方案