C 标准库系列之errno.h

Posted 浩月星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 标准库系列之errno.h相关的知识,希望对你有一定的参考价值。

  errno.h 提供了一个整数全局变量errno,当系统调用或者库函数的错误事件发生时可能会修改该值,指明错误的原因,该值可在任何需要的地方被修改;
一般情况不为0的值表示出现了异常或者错误。
  errno.h中定义了一系列的错误代码,以E开头的宏。

  glibc中extern int errno来声明定义该错误值;此外其他的E开头的宏EDOM、EILSEQ、ERANGE、EOWNERDEAD等。

  微软提供的为一个函数,errno被宏定义#define errno (*_errno());_errno函数可以返回该变量的地址,预计是为了线程安全;
此外微软有自己的一套错误体系GetLastError等;此外不同的三方库也可能提供自己的错误体系。

  不同的标准库实现的以E开头的宏,可能有不同的定义值,甚至有不同的宏名称;可根据需要查看各个平台的错误码定义说明;

在现实应用中应尽量不要依赖于errno值,因为很可能当调用某个函数失败后,检查该值时,其值有可能又被其他函数给修改了,不过有时候对于检查问题的原因还是有用的。

以上是关于C 标准库系列之errno.h的主要内容,如果未能解决你的问题,请参考以下文章

C语言标准库总结

C语言常用标准库

C语言中头文件errno.h是啥含义?包含些啥内容?

Standard C 语言标准函数库介绍

《C程序设计语言》笔记 (十五) 参考手册7

1Python标准库系列之模块介绍