C 标准库 errno.h详解

errno 变量

errno.h声明了一个 int 类型的 errno 变量,用来存储错误码(正整数)。

如果这个变量有非零值,表示已经执行的程序发生了错误。

int x = -1;

errno = 0;

int y = sqrt(x);

if (errno != 0) {
  fprintf(stderr, "sqrt error; program terminated.\n");
  exit(EXIT_FAILURE);
}

上面示例中,计算一个负值的平方根是不允许的,会导致errno不等于0

如果要检查某个函数是否发生错误,必须在即将调用该函数之前,将errno的值置为0,防止其他函数改变errno的值。

变量errno的值通常是两个宏EDOMERANGE。这两个宏都定义在errno.h。它们表示调用数学函数时,可能发生的两种错误。

使用数学函数时,可以将errno的值与 EDOM 和 ERANGE 比较,用来确定到底发生了哪一类错误。

教程来源于Github,感谢大佬的无私奉献,致敬!

技术教程推荐

Go语言核心36讲 -〔郝林〕

数据结构与算法之美 -〔王争〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

跟月影学可视化 -〔月影〕

Vim 实用技巧必知必会 -〔吴咏炜〕

容器实战高手课 -〔李程远〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

高楼的性能工程实战课 -〔高楼〕

Web漏洞挖掘实战 -〔王昊天〕