错误号

来自cppreference.com
< c‎ | error

每个定义于 <errno.h> 的宏都展开成 int 类型的整数常量表达式,并且拥有独立的正整数值。下列常量得到定义(实现可以定义更多,只要以 'E' 开始,后随数字或大写字母):

在标头 <errno.h> 定义
EDOM
数学参数在定义域外
(宏常量)
EILSEQ
(C95)
非法字节序列
(宏常量)
ERANGE
结果过大
(宏常量)

注意

POSIXC++ 标准库定义了更多的额外错误常量,而且每一个单独实现可能定义更多,例如 Linux 上的 errno(3) 或 BSD 和 OS X 上的 intro(2)

示例

#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <string.h>
 
int main(void)
{
    errno = 0;
    printf("log(-1.0) = %f\n", log(-1.0));
    printf("%s\n\n",strerror(errno));
 
    errno = 0;
    printf("log(0.0)  = %f\n", log(0.0));
    printf("%s\n",strerror(errno));
}

可能的输出:

log(-1.0) = nan
Numerical argument out of domain
 
log(0.0)  = -inf
Numerical result out of range

引用

  • C11 标准(ISO/IEC 9899:2011):
  • 7.5/2 Errors <errno.h> (第 205 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.5/2 Errors <errno.h> (第 186 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.1.3 Errors <errno.h>

参阅

展开成 POSIX 兼容的线程局域错误编号变量
(宏变量)
显示对应当前错误的字符串到 stderr
(函数)
返回给定错误码的文本版本
(函数)