命名空间
变体
操作

标准库头文件 <cerrno>

来自 cppreference.com
< cpp‎ | 头文件
 
 
标准库头文件
语言支持
概念
<concepts> (C++20)
诊断
<cerrno>

<system_error> (C++11)

内存管理
<memory_resource> (C++17)  
元编程
<type_traits> (C++11)
<ratio> (C++11)
通用实用程序
<utility>
<tuple> (C++11)
<optional> (C++17)
<variant> (C++17)
<any> (C++17)
<debugging> (C++26)
<expected> (C++23)
<bitset>
<charconv> (C++17)
<format> (C++20)
<bit> (C++20)

字符串
<cuchar> (C++11)

容器
<flat_set> (C++23)
<span> (C++20)
<mdspan> (C++23)
<inplace_vector> (C++26)
迭代器
<iterator>
范围
<ranges> (C++20)
<generator> (C++23)
算法
数值
<cfenv> (C++11)
<complex>
<cmath>
<linalg> (C++26)
<numbers> (C++20)

时间
<chrono> (C++11)
本地化
<codecvt> (C++11/17/26*)
<text_encoding> (C++26)
输入/输出
<filesystem> (C++17)
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98/26*)
正则表达式
<regex> (C++11)
并发支持
<stop_token> (C++20)
<thread> (C++11)
<atomic> (C++11)
<rcu> (C++26)
<stdatomic.h> (C++23)
<mutex> (C++11)
<shared_mutex> (C++14)

<condition_variable> (C++11)  
<semaphore> (C++20)
<latch> (C++20)

<barrier> (C++20)
<future> (C++11)
<hazard_pointer> (C++26)

C 兼容性
<cstdbool> (C++11/17/20*)  
<ccomplex> (C++11/17/20*)
<ctgmath> (C++11/17/20*)

<cstdalign> (C++11/17/20*)

<ciso646> (直到 C++20)

 

此头文件最初在 C 标准库中称为 <errno.h>.

此头文件是 错误处理 库的一部分。

内容

[编辑]

扩展为与 POSIX 兼容的线程本地错误号变量的宏
(宏变量)[编辑]
E2BIG
(C++11)
参数列表过长
(宏常量)
EACCES
(C++11)
权限被拒绝
(宏常量)
EADDRINUSE
(C++11)
地址正在使用
(宏常量)
EADDRNOTAVAIL
(C++11)
地址不可用
(宏常量)
EAFNOSUPPORT
(C++11)
不支持的地址族
(宏常量)
EAGAIN
(C++11)
资源不可用,请重试
(宏常量)
EALREADY
(C++11)
连接已在进行中
(宏常量)
EBADF
(C++11)
错误的文件描述符
(宏常量)
EBADMSG
(C++11)
错误的消息
(宏常量)
EBUSY
(C++11)
设备或资源繁忙
(宏常量)
ECANCELED
(C++11)
操作已取消
(宏常量)
ECHILD
(C++11)
没有子进程
(宏常量)
ECONNABORTED
(C++11)
连接已中止
(宏常量)
ECONNREFUSED
(C++11)
连接被拒绝
(宏常量)
ECONNRESET
(C++11)
连接重置
(宏常量)
EDEADLK
(C++11)
资源死锁将发生
(宏常量)
EDESTADDRREQ
(C++11)
需要目标地址
(宏常量)
EDOM
数学参数超出函数域
(宏常量)
EEXIST
(C++11)
文件已存在
(宏常量)
EFAULT
(C++11)
错误的地址
(宏常量)
EFBIG
(C++11)
文件太大
(宏常量)
EHOSTUNREACH
(C++11)
主机不可达
(宏常量)
EIDRM
(C++11)
标识符已删除
(宏常量)
EILSEQ
非法字节序列
(宏常量)
EINPROGRESS
(C++11)
操作正在进行中
(宏常量)
EINTR
(C++11)
中断函数
(宏常量)
EINVAL
(C++11)
无效参数
(宏常量)
EIO
(C++11)
I/O 错误
(宏常量)
EISCONN
(C++11)
套接字已连接
(宏常量)
EISDIR
(C++11)
是目录
(宏常量)
ELOOP
(C++11)
符号链接层级过多
(宏常量)
EMFILE
(C++11)
文件描述符值过大
(宏常量)
EMLINK
(C++11)
链接过多
(宏常量)
EMSGSIZE
(C++11)
消息过大
(宏常量)
ENAMETOOLONG
(C++11)
文件名过长
(宏常量)
ENETDOWN
(C++11)
网络已关闭
(宏常量)
ENETRESET
(C++11)
网络中止连接
(宏常量)
ENETUNREACH
(C++11)
网络不可达
(宏常量)
ENFILE
(C++11)
系统中打开的文件太多
(宏常量)
ENOBUFS
(C++11)
没有可用的缓冲区空间
(宏常量)
ENODATA
(C++11) (C++23 中已弃用)
STREAM 头部读取队列中没有可用的消息
(宏常量)
ENODEV
(C++11)
没有这样的设备
(宏常量)
ENOENT
(C++11)
没有这样的文件或目录
(宏常量)
ENOEXEC
(C++11)
可执行文件格式错误
(宏常量)
ENOLCK
(C++11)
没有可用的锁
(宏常量)
ENOLINK
(C++11)
链接已被切断
(宏常量)
ENOMEM
(C++11)
空间不足
(宏常量)
ENOMSG
(C++11)
没有所需类型的消息
(宏常量)
ENOPROTOOPT
(C++11)
协议不可用
(宏常量)
ENOSPC
(C++11)
设备上没有剩余空间
(宏常量)
ENOSR
(C++11) (C++23 中已弃用)
没有 STREAM 资源
(宏常量)
ENOSTR
(C++11) (C++23 中已弃用)
不是 STREAM
(宏常量)
ENOSYS
(C++11)
不支持该函数
(宏常量)
ENOTCONN
(C++11)
套接字未连接
(宏常量)
ENOTDIR
(C++11)
不是目录
(宏常量)
ENOTEMPTY
(C++11)
目录不为空
(宏常量)
ENOTRECOVERABLE
(C++11)
状态不可恢复
(宏常量)
ENOTSOCK
(C++11)
不是套接字
(宏常量)
ENOTSUP
(C++11)
不支持
(宏常量)
ENOTTY
(C++11)
不适当的 I/O 控制操作
(宏常量)
ENXIO
(C++11)
没有这样的设备或地址
(宏常量)
EOPNOTSUPP
(C++11)
套接字不支持该操作
(宏常量)
EOVERFLOW
(C++11)
值太大,无法存储在数据类型中
(宏常量)
EOWNERDEAD
(C++11)
前一个所有者已死
(宏常量)
EPERM
(C++11)
操作不允许
(宏常量)
EPIPE
(C++11)
管道破裂
(宏常量)
EPROTO
(C++11)
协议错误
(宏常量)
EPROTONOSUPPORT
(C++11)
不支持该协议
(宏常量)
EPROTOTYPE
(C++11)
套接字的协议类型错误
(宏常量)
ERANGE
结果太大
(宏常量)
EROFS
(C++11)
只读文件系统
(宏常量)
ESPIPE
(C++11)
无效的 seek
(宏常量)
ESRCH
(C++11)
没有这样的进程
(宏常量)
ETIME
(C++11) (C++23 中已弃用)
STREAM ioctl() 超时
(宏常量)
ETIMEDOUT
(C++11)
连接超时
(宏常量)
ETXTBSY
(C++11)
文本文件繁忙
(宏常量)
EWOULDBLOCK
(C++11)
操作将阻塞
(宏常量)
EXDEV
(C++11)
跨设备链接
(宏常量)

[edit] 备注

虽然头文件 <cerrno> 基于 C 标准库头文件 <errno.h>,但 <cerrno> 定义的大多数宏都是从 POSIX 标准而不是 C 标准库中采用的。

[edit] 概要

#define errno /* see description */
#define E2BIG /* see description */           // freestanding
#define EACCES /* see description */          // freestanding
#define EADDRINUSE /* see description */      // freestanding
#define EADDRNOTAVAIL /* see description */   // freestanding
#define EAFNOSUPPORT /* see description */    // freestanding
#define EAGAIN /* see description */          // freestanding
#define EALREADY /* see description */        // freestanding
#define EBADF /* see description */           // freestanding
#define EBADMSG /* see description */         // freestanding
#define EBUSY /* see description */           // freestanding
#define ECANCELED /* see description */       // freestanding
#define ECHILD /* see description */          // freestanding
#define ECONNABORTED /* see description */    // freestanding
#define ECONNREFUSED /* see description */    // freestanding
#define ECONNRESET /* see description */      // freestanding
#define EDEADLK /* see description */         // freestanding
#define EDESTADDRREQ /* see description */    // freestanding
#define EDOM /* see description */            // freestanding
#define EEXIST /* see description */          // freestanding
#define EFAULT /* see description */          // freestanding
#define EFBIG /* see description */           // freestanding
#define EHOSTUNREACH /* see description */    // freestanding
#define EIDRM /* see description */           // freestanding
#define EILSEQ /* see description */          // freestanding
#define EINPROGRESS /* see description */     // freestanding
#define EINTR /* see description */           // freestanding
#define EINVAL /* see description */          // freestanding
#define EIO /* see description */             // freestanding
#define EISCONN /* see description */         // freestanding
#define EISDIR /* see description */          // freestanding
#define ELOOP /* see description */           // freestanding
#define EMFILE /* see description */          // freestanding
#define EMLINK /* see description */          // freestanding
#define EMSGSIZE /* see description */        // freestanding
#define ENAMETOOLONG /* see description */    // freestanding
#define ENETDOWN /* see description */        // freestanding
#define ENETRESET /* see description */       // freestanding
#define ENETUNREACH /* see description */     // freestanding
#define ENFILE /* see description */          // freestanding
#define ENOBUFS /* see description */         // freestanding
#define ENODEV /* see description */          // freestanding
#define ENOENT /* see description */          // freestanding
#define ENOEXEC /* see description */         // freestanding
#define ENOLCK /* see description */          // freestanding
#define ENOLINK /* see description */         // freestanding
#define ENOMEM /* see description */          // freestanding
#define ENOMSG /* see description */          // freestanding
#define ENOPROTOOPT /* see description */     // freestanding
#define ENOSPC /* see description */          // freestanding
#define ENOSYS /* see description */          // freestanding
#define ENOTCONN /* see description */        // freestanding
#define ENOTDIR /* see description */         // freestanding
#define ENOTEMPTY /* see description */       // freestanding
#define ENOTRECOVERABLE /* see description */ // freestanding
#define ENOTSOCK /* see description */        // freestanding
#define ENOTSUP /* see description */         // freestanding
#define ENOTTY /* see description */          // freestanding
#define ENXIO /* see description */           // freestanding
#define EOPNOTSUPP /* see description */      // freestanding
#define EOVERFLOW /* see description */       // freestanding
#define EOWNERDEAD /* see description */      // freestanding
#define EPERM /* see description */           // freestanding
#define EPIPE /* see description */           // freestanding
#define EPROTO /* see description */          // freestanding
#define EPROTONOSUPPORT /* see description */ // freestanding
#define EPROTOTYPE /* see description */      // freestanding
#define ERANGE /* see description */          // freestanding
#define EROFS /* see description */           // freestanding
#define ESPIPE /* see description */          // freestanding
#define ESRCH /* see description */           // freestanding
#define ETIMEDOUT /* see description */       // freestanding
#define ETXTBSY /* see description */         // freestanding
#define EWOULDBLOCK /* see description */     // freestanding
#define EXDEV /* see description */           // freestanding

[edit] 缺陷报告

以下更改行为的缺陷报告已追溯应用于以前发布的 C++ 标准。

DR 应用于 已发布的行为 正确行为
LWG 288 C++98 EILSEQ 未在 <cerrno> 中定义 已定义

[edit] 另请参阅