C 标准库的errno.h头文件定义了整形变量 errno, 它是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。
在程序启动时,errno设置为零,C标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。
eerno.h头文件也定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为int的整数常量表达式。
下面列出了头文件errno.h中定义的宏:
extern int errno
EDOM Domain Error
ERANGE Range Error
extern int errno : 是通过系统调用设置的,在错误事件中的某些库函数表明了什么发生了错误。
C库宏EDOM表示一个域错误,它在输入参数超出数学函数定义的域时发生, errno被设置为EDOM。
声明
#define EDOM some_value
void main()
{
double val;
errno = 0;
val = sqrt(-10);
if(errno == EDOM)
{
printf("Invalid value.\n");
}
else
{
printf("Valid value.\n");
}
getchar();
}
C库宏ERANGE表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno被设置为ERANGE.
void main()
{
double val;
double result;
val = -1.0;
result = log(val);
if(errno == ERANGE)
printf("log(%f) is out of range.\n", val);
else
printf("log(%f) = %f\n", val, result);
getchar();
}
网友评论