errno.h声明了一个 int 类型的 errno 变量,用来存储错误码(正整数)。
errno.h
如果这个变量有非零值,表示已经执行的程序发生了错误。
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的值置为0,防止其他函数改变errno的值。
变量errno的值通常是两个宏EDOM或ERANGE。这两个宏都定义在errno.h。它们表示调用数学函数时,可能发生的两种错误。
EDOM
ERANGE
sqrt()
exp()
使用数学函数时,可以将errno的值与 EDOM 和 ERANGE 比较,用来确定到底发生了哪一类错误。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8