** errno常见的错误码及其含义**
错误码 | 宏定义 | 描述 |
---|---|---|
1 | EPERM | 操作不允许 |
2 | ENOENT | 没有这个文件或目录 |
3 | ESRCH | 没有该进程 |
4 | EINTR | 被信号中断 |
5 | EIO | I/O 错误 |
6 | ENXIO | 没有该设备或地址 |
7 | E2BIG | 参数列表太大 |
8 | ENOEXEC | 格式错误,不能执行 |
9 | EBADF | 无效文件描述符 |
10 | ECHILD | 没有子进程 |
11 | EAGAIN | 资源暂时不可用 |
12 | ENOMEM | 不能分配内存 |
13 | EACCES | 权限不够 |
14 | EFAULT | 指针指向地址无效 |
15 | ENOTBLK | 块设备要求 |
16 | EBUSY | 设备或资源忙 |
17 | EEXIST | 文件已存在 |
18 | EXDEV | 跨设备链接 |
19 | ENODEV | 没有该设备 |
20 | ENOTDIR | 不是目录 |
21 | EISDIR | 是目录 |
22 | EINVAL | 参数无效 |
23 | ENFILE | 文件已打开太多 |
24 | EMFILE | 文件描述符超出范围 |
25 | ENOTTY | 不是终端设备 |
26 | ETXTBSY | 文本文件忙 |
27 | EFBIG | 文件太大 |
28 | ENOSPC | 没有空间 |
29 | ESPIPE | 非法的管道操作 |
30 | EROFS | 只读文件系统 |
31 | EMLINK | 链接数过多 |
32 | EPIPE | 管道破裂 |
33 | EDOM | 数学参数超出范围 |
34 | ERANGE | 数学结果超出范围 |
35 | EDEADLK | 可能死锁 |
36 | ENAMETOOLONG | 文件名太长 |
37 | ENOLCK | 没有锁可用 |
38 | ENOSYS | 功能未实现 |
39 | ENOTEMPTY | 目录不为空 |
40 | ELOOP | 太多的符号链接 |
41 | EWOULDBLOCK | 等同于 EAGAIN |
42 | ENOMSG | 没有消息可用 |
43 | EIDRM | 标识符被移除 |
44 | ECHRNG | 通道号超出范围 |
45 | EL2NSYNC | 级别 2 同步 |
46 | EL3HLT | 级别 3 停止 |
47 | EL3RST | 级别 3 重启 |
48 | ELNRNG | 链路号超出范围 |
49 | EUNATCH | 未锁定的协议 |
50 | ENOCSI | 没有 CSI 结构 |
51 | EL2HLT | 级别 2 停止 |
52 | EBADE | 无效的交换 |
53 | EBADR | 无效的请求码 |
54 | EXFULL | 交换区满 |
55 | ENOANO | 没有可用的匿名页 |
56 | EBADRQC | 无效的请求码 |
57 | EBADSLT | 无效的插槽 |
58 | EDEADLOCK | 等同于 EDEADLK |
59 | EBFONT | 字体错误 |
60 | ENOSTR | 设备不是流 |
61 | ENODATA | 没有可用数据 |
62 | ETIME | 超时 |
63 | ENOSR | 没有可用的流资源 |
64 | ENONET | 机器未在网中 |
65 | ENOPKG | 包未安装 |
66 | EREMOTE | 对象在远程机器上 |
67 | ENOLINK | 链接断开 |
68 | EADV | 广告错误 |
69 | ESRMNT | 挂载错误 |
70 | ECOMM | 通信错误 |
71 | EPROTO | 协议错误 |
72 | EMULTIHOP | 多跳错误 |
73 | EDOTDOT | 无法解析 .. |
74 | EBADMSG | 消息无效 |
75 | EOVERFLOW | 值太大,无法存储 |
76 | ENOTUNIQ | 名称不唯一 |
77 | EBADFD | 文件描述符无效 |
78 | EREMCHG | 远程地址已更改 |
79 | ELIBACC | 无法访问库 |
80 | ELIBBAD | 无效的库 |
81 | ELIBSCN | 库已损坏 |
82 | ELIBMAX | 超过最大值 |
83 | ELIBEXEC | 无法执行库 |
84 | EILSEQ | 非法字节序列 |
85 | ERESTART | 系统调用中断,可重启 |
86 | ESTRPIPE | 流管道错误 |
87 | EUSERS | 用户数过多 |
88 | ENOTSOCK | 不是套接字 |
89 | EDESTADDRREQ | 需要目标地址 |
90 | EMSGSIZE | 消息太大 |
91 | EPROTOTYPE | 错误的协议类型 |
92 | ENOPROTOOPT | 无协议选项 |
93 | EPROTONOSUPPORT | 未支持的协议 |
94 | ESOCKTNOSUPPORT | 未支持的套接字类型 |
95 | EOPNOTSUPP | 操作不支持 |
96 | EPFNOSUPPORT | 未支持的协议族 |
97 | EAFNOSUPPORT | 未支持的地址族 |
98 | EADDRINUSE | 地址已在使用 |
99 | EADDRNOTAVAIL | 地址不可用 |
100 | ENETDOWN | 网络不可用 |
101 | ENETUNREACH | 网络不可达 |
102 | ENETRESET | 网络已重置 |
103 | `E |
也可以通过shell命令查询errno详情:
sudo apt install moreutils # 安装 errno 命令包
errno 2 # 查询errno=2的错误详情