小编Ton*_*hao的帖子

C语言中EDOM和ERANGE的区别?

errno从标准库函数捕获错误消息。然而,有两个宏观值EDOMERANGE我发现很难区分。

cppreference 中的示例代码将执行以下操作

#include <stdio.h>
#include <math.h>
#include <errno.h>

void show_errno(void)
{
    const char *err_info = "unknown error";
    switch (errno) {
    case EDOM:
        err_info = "domain error";
        break;
    case EILSEQ:
        err_info = "illegal sequence";
        break;
    case ERANGE:
        err_info = "pole or range error";
        break;
    case 0:
        err_info = "no error";
    }
    fputs(err_info, stdout);
    puts(" occurred");
}

int main(void)
{
    errno = 0;
    acos(+1.1);
    show_errno();
 
    errno = 0;
    log(0.0);
    show_errno();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它会产生

domain error …
Run Code Online (Sandbox Code Playgroud)

c errno

2
推荐指数
1
解决办法
249
查看次数

标签 统计

c ×1

errno ×1