当前位置:主页C 语言入门教程

23.3 errno.h

文章来源:知付 更新时间:2022-05-28 16:46 热度:166
目录
  • errno 变量

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 。它们表示调用数学函数时,可能发生的两种错误。

  • 定义域错误(EDOM):传递给函数的一个参数超出了函数的定义域。例如,负数传入 sqrt() 作为参数。

  • 取值范围错误(ERANGE):函数的返回值太大,无法用返回类型表示。例如,1000 传入 exp() 作为参数,因为 e^1000 太大,无法使用 double 类型表示。

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

分享到:

#免责声明#

版权声明:《 23.3 errno.h 》为作者 知付 原创文章,转载请注明原文地址!
本站所有文章,如无特殊说明或标注,均为本站原创或整合发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本文地址:https://www.yoppunion.com/C%20%E8%AF%AD%E8%A8%80%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/112.html
同类推荐
评论列表
签到

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

支付宝扫一扫打赏

微信扫一扫打赏

微信扫一扫打赏