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

本模块提供标准的 `errno` 系统符号。每个符号的值是其对应的整数值。符号的名称和描述来自 `linux/include/errno.h`，应该是非常全面的。

`errno.``errorcode`

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

如果要将数字的错误代码转换为错误信息，请使用 `os.strerror()`。

在下面的列表中，当前平台上没有使用的符号没有被本模块定义。 已定义的符号的具体列表可参见 `errno.errorcode.keys()`。 可用的符号包括：

`errno.``EPERM`

  Operation not permitted

`errno.``ENOENT`

  No such file or directory

`errno.``ESRCH`

  No such process

`errno.``EINTR`

  Interrupted system call.

  参见

  This error is mapped to the exception `InterruptedError`.

`errno.``EIO`

  I/O error

`errno.``ENXIO`

  No such device or address

`errno.``E2BIG`

  Arg list too long

`errno.``ENOEXEC`

  Exec format error

`errno.``EBADF`

  Bad file number

`errno.``ECHILD`

  No child processes

`errno.``EAGAIN`

  Try again

`errno.``ENOMEM`

  Out of memory

`errno.``EACCES`

  Permission denied

`errno.``EFAULT`

  Bad address

`errno.``ENOTBLK`

  Block device required

`errno.``EBUSY`

  Device or resource busy

`errno.``EEXIST`

  File exists

`errno.``EXDEV`

  Cross-device link

`errno.``ENODEV`

  No such device

`errno.``ENOTDIR`

  Not a directory

`errno.``EISDIR`

  Is a directory

`errno.``EINVAL`

  Invalid argument

`errno.``ENFILE`

  File table overflow

`errno.``EMFILE`

  Too many open files

`errno.``ENOTTY`

  Not a typewriter

`errno.``ETXTBSY`

  Text file busy

`errno.``EFBIG`

  File too large

`errno.``ENOSPC`

  No space left on device

`errno.``ESPIPE`

  Illegal seek

`errno.``EROFS`

  Read-only file system

`errno.``EMLINK`

  Too many links

`errno.``EPIPE`

  Broken pipe

`errno.``EDOM`

  Math argument out of domain of func

`errno.``ERANGE`

  Math result not representable

`errno.``EDEADLK`

  Resource deadlock would occur

`errno.``ENAMETOOLONG`

  File name too long

`errno.``ENOLCK`

  No record locks available

`errno.``ENOSYS`

  Function not implemented

`errno.``ENOTEMPTY`

  Directory not empty

`errno.``ELOOP`

  Too many symbolic links encountered

`errno.``EWOULDBLOCK`

  Operation would block

`errno.``ENOMSG`

  No message of desired type

`errno.``EIDRM`

  Identifier removed

`errno.``ECHRNG`

  Channel number out of range

`errno.``EL2NSYNC`

  Level 2 not synchronized

`errno.``EL3HLT`

  Level 3 halted

`errno.``EL3RST`

  Level 3 reset

`errno.``ELNRNG`

  Link number out of range

`errno.``EUNATCH`

  Protocol driver not attached

`errno.``ENOCSI`

  No CSI structure available

`errno.``EL2HLT`

  Level 2 halted

`errno.``EBADE`

  Invalid exchange

`errno.``EBADR`

  Invalid request descriptor

`errno.``EXFULL`

  Exchange full

`errno.``ENOANO`

  No anode

`errno.``EBADRQC`

  Invalid request code

`errno.``EBADSLT`

  Invalid slot

`errno.``EDEADLOCK`

  File locking deadlock error

`errno.``EBFONT`

  Bad font file format

`errno.``ENOSTR`

  Device not a stream

`errno.``ENODATA`

  No data available

`errno.``ETIME`

  Timer expired

`errno.``ENOSR`

  Out of streams resources

`errno.``ENONET`

  Machine is not on the network

`errno.``ENOPKG`

  Package not installed

`errno.``EREMOTE`

  Object is remote

`errno.``ENOLINK`

  Link has been severed

`errno.``EADV`

  Advertise error

`errno.``ESRMNT`

  Srmount error

`errno.``ECOMM`

  Communication error on send

`errno.``EPROTO`

  Protocol error

`errno.``EMULTIHOP`

  Multihop attempted

`errno.``EDOTDOT`

  RFS specific error

`errno.``EBADMSG`

  Not a data message

`errno.``EOVERFLOW`

  Value too large for defined data type

`errno.``ENOTUNIQ`

  Name not unique on network

`errno.``EBADFD`

  File descriptor in bad state

`errno.``EREMCHG`

  Remote address changed

`errno.``ELIBACC`

  Can not access a needed shared library

`errno.``ELIBBAD`

  Accessing a corrupted shared library

`errno.``ELIBSCN`

  .lib section in a.out corrupted

`errno.``ELIBMAX`

  Attempting to link in too many shared libraries

`errno.``ELIBEXEC`

  Cannot exec a shared library directly

`errno.``EILSEQ`

  Illegal byte sequence

`errno.``ERESTART`

  Interrupted system call should be restarted

`errno.``ESTRPIPE`

  Streams pipe error

`errno.``EUSERS`

  Too many users

`errno.``ENOTSOCK`

  Socket operation on non-socket

`errno.``EDESTADDRREQ`

  Destination address required

`errno.``EMSGSIZE`

  Message too long

`errno.``EPROTOTYPE`

  Protocol wrong type for socket

`errno.``ENOPROTOOPT`

  Protocol not available

`errno.``EPROTONOSUPPORT`

  Protocol not supported

`errno.``ESOCKTNOSUPPORT`

  Socket type not supported

`errno.``EOPNOTSUPP`

  Operation not supported on transport endpoint

`errno.``EPFNOSUPPORT`

  Protocol family not supported

`errno.``EAFNOSUPPORT`

  Address family not supported by protocol

`errno.``EADDRINUSE`

  Address already in use

`errno.``EADDRNOTAVAIL`

  Cannot assign requested address

`errno.``ENETDOWN`

  Network is down

`errno.``ENETUNREACH`

  Network is unreachable

`errno.``ENETRESET`

  Network dropped connection because of reset

`errno.``ECONNABORTED`

  Software caused connection abort

`errno.``ECONNRESET`

  Connection reset by peer

`errno.``ENOBUFS`

  No buffer space available

`errno.``EISCONN`

  Transport endpoint is already connected

`errno.``ENOTCONN`

  Transport endpoint is not connected

`errno.``ESHUTDOWN`

  Cannot send after transport endpoint shutdown

`errno.``ETOOMANYREFS`

  Too many references: cannot splice

`errno.``ETIMEDOUT`

  Connection timed out

`errno.``ECONNREFUSED`

  Connection refused

`errno.``EHOSTDOWN`

  Host is down

`errno.``EHOSTUNREACH`

  No route to host

`errno.``EALREADY`

  Operation already in progress

`errno.``EINPROGRESS`

  Operation now in progress

`errno.``ESTALE`

  Stale NFS file handle

`errno.``EUCLEAN`

  Structure needs cleaning

`errno.``ENOTNAM`

  Not a XENIX named type file

`errno.``ENAVAIL`

  No XENIX semaphores available

`errno.``EISNAM`

  Is a named type file

`errno.``EREMOTEIO`

  Remote I/O error

`errno.``EDQUOT`

  Quota exceeded