# 16.15. `errno` - 标准errno系统符号

此模块提供标准的`errno`系统符号。每个符号的值是相应的整数值。名称和描述是从`linux/include/errno.h`借用的，它应该是非常全面的。

`errno.``errorcode`

  提供从errno值到底层系统中的字符串名称的映射的字典。对于实例，`errno.errorcode[errno.EPERM]`映​​射到`'EPERM'`。

要将数字错误代码翻译为错误消息，请使用`os.strerror()`。

在以下列表中，当前平台上未使用的符号未由模块定义。定义符号的特定列表可用作`errno.errorcode.keys()`。可用的符号包括：

`errno.``EPERM`

  操作不允许

`errno.``ENOENT`

  无此文件或目录

`errno.``ESRCH`

  没有这样的过程

`errno.``EINTR`

  中断系统调用。

  也可以看看

  此错误映射到异常`InterruptedError`。

`errno.``EIO`

  I / O错误

`errno.``ENXIO`

  没有这样的设备或地址

`errno.``E2BIG`

  精选列表过长

`errno.``ENOEXEC`

  Exec格式错误

`errno.``EBADF`

  错误的文件编号

`errno.``ECHILD`

  没有子进程

`errno.``EAGAIN`

  再试一次

`errno.``ENOMEM`

  内存不足

`errno.``EACCES`

  没有权限

`errno.``EFAULT`

  地址错误

`errno.``ENOTBLK`

  需要块设备

`errno.``EBUSY`

  设备或资源繁忙

`errno.``EEXIST`

  文件已存在

`errno.``EXDEV`

  跨设备链接

`errno.``ENODEV`

  没有这样的设备

`errno.``ENOTDIR`

  不是目录

`errno.``EISDIR`

  是一个目录

`errno.``EINVAL`

  无效的论点

`errno.``ENFILE`

  文件表溢出

`errno.``EMFILE`

  打开的文件太多

`errno.``ENOTTY`

  不是打字机

`errno.``ETXTBSY`

  文本文件忙

`errno.``EFBIG`

  文件过大

`errno.``ENOSPC`

  设备上没有剩余空间

`errno.``ESPIPE`

  非法寻求

`errno.``EROFS`

  只读文件系统

`errno.``EMLINK`

  链接过多

`errno.``EPIPE`

  破碎的管道

`errno.``EDOM`

  数学参数超出了func的域

`errno.``ERANGE`

  数学结果不可表示

`errno.``EDEADLK`

  将发生资源死锁

`errno.``ENAMETOOLONG`

  文件名太长

`errno.``ENOLCK`

  没有可用的记录锁

`errno.``ENOSYS`

  功能未实现

`errno.``ENOTEMPTY`

  目录不为空

`errno.``ELOOP`

  遇到过多符号链接

`errno.``EWOULDBLOCK`

  操作会阻塞

`errno.``ENOMSG`

  没有所需类型的消息

`errno.``EIDRM`

  标识符已删除

`errno.``ECHRNG`

  通道号超出范围

`errno.``EL2NSYNC`

  级别2不同步

`errno.``EL3HLT`

  3级暂停

`errno.``EL3RST`

  3级复位

`errno.``ELNRNG`

  链接编号超出范围

`errno.``EUNATCH`

  未附加协议驱动程序

`errno.``ENOCSI`

  没有CSI结构可用

`errno.``EL2HLT`

  2级暂停

`errno.``EBADE`

  交换无效

`errno.``EBADR`

  请求描述器无效

`errno.``EXFULL`

  充分交换

`errno.``ENOANO`

  无阳极

`errno.``EBADRQC`

  请求代码无效

`errno.``EBADSLT`

  插槽无效

`errno.``EDEADLOCK`

  文件锁死锁错误

`errno.``EBFONT`

  字体文件格式不正确

`errno.``ENOSTR`

  设备不是流

`errno.``ENODATA`

  无可用数据

`errno.``ETIME`

  计时器已过期

`errno.``ENOSR`

  流出资源

`errno.``ENONET`

  机器不在网络上

`errno.``ENOPKG`

  软件包未安装

`errno.``EREMOTE`

  对象是远程的

`errno.``ENOLINK`

  链接已断开

`errno.``EADV`

  广告错误

`errno.``ESRMNT`

  Srmount错误

`errno.``ECOMM`

  发送时发生通信错误

`errno.``EPROTO`

  协议错误

`errno.``EMULTIHOP`

  多点尝试

`errno.``EDOTDOT`

  RFS具体错误

`errno.``EBADMSG`

  不是数据消息

`errno.``EOVERFLOW`

  对于定义的数据类型，值太大

`errno.``ENOTUNIQ`

  网络上的名称不唯一

`errno.``EBADFD`

  文件描述器处于坏状态

`errno.``EREMCHG`

  远程地址已更改

`errno.``ELIBACC`

  无法访问所需的共享库

`errno.``ELIBBAD`

  访问损坏的共享库

`errno.``ELIBSCN`

  .lib中的a.out部分已损坏

`errno.``ELIBMAX`

  正在尝试链接过多的共享库

`errno.``ELIBEXEC`

  无法直接执行共享库

`errno.``EILSEQ`

  非法字节序列

`errno.``ERESTART`

  中断的系统调用应重新启动

`errno.``ESTRPIPE`

  流管道错误

`errno.``EUSERS`

  用户过多

`errno.``ENOTSOCK`

  非套接字操作

`errno.``EDESTADDRREQ`

  需要目标地址

`errno.``EMSGSIZE`

  消息太长

`errno.``EPROTOTYPE`

  协议错误类型的套接字

`errno.``ENOPROTOOPT`

  协议不可用

`errno.``EPROTONOSUPPORT`

  不支持协议

`errno.``ESOCKTNOSUPPORT`

  不支持套接字类型

`errno.``EOPNOTSUPP`

  传输端点上不支持操作

`errno.``EPFNOSUPPORT`

  不支持协议系列

`errno.``EAFNOSUPPORT`

  协议不支持的地址系列

`errno.``EADDRINUSE`

  地址已在使用中

`errno.``EADDRNOTAVAIL`

  无法分配请求的地址

`errno.``ENETDOWN`

  网络已关闭

`errno.``ENETUNREACH`

  网络不可达

`errno.``ENETRESET`

  网络由于重置而断开连接

`errno.``ECONNABORTED`

  软件导致连接中止

`errno.``ECONNRESET`

  连接由对等体复位

`errno.``ENOBUFS`

  没有可用的缓冲区空间

`errno.``EISCONN`

  传输端点已连接

`errno.``ENOTCONN`

  传输端点未连接

`errno.``ESHUTDOWN`

  传输终端关闭后无法发送

`errno.``ETOOMANYREFS`

  参数太多：无法拼接

`errno.``ETIMEDOUT`

  连接超时

`errno.``ECONNREFUSED`

  连接被拒绝

`errno.``EHOSTDOWN`

  主机已关闭

`errno.``EHOSTUNREACH`

  没有到主机的路由

`errno.``EALREADY`

  操作已在进行中

`errno.``EINPROGRESS`

  操作现在进行中

`errno.``ESTALE`

  陈旧的NFS文件句柄

`errno.``EUCLEAN`

  结构需要清洁

`errno.``ENOTNAM`

  不是XENIX命名类型文件

`errno.``ENAVAIL`

  没有XENIX信号量可用

`errno.``EISNAM`

  是一个命名类型文件

`errno.``EREMOTEIO`

  远程I / O错误

`errno.``EDQUOT`

  超出配额