:mod:`errno` --- Standard errno system symbols
==============================================

.. module:: errno
   :synopsis: Standard errno system symbols.


This module makes available standard ``errno`` system symbols. The value of each
symbol is the corresponding integer value. The names and descriptions are
borrowed from :file:`linux/include/errno.h`, which should be pretty
all-inclusive.


.. data:: errorcode

   Dictionary providing a mapping from the errno value to the string name in the
   underlying system.  For instance, ``errno.errorcode[errno.EPERM]`` maps to
   ``'EPERM'``.

To translate a numeric error code to an error message, use :func:`os.strerror`.

Of the following list, symbols that are not used on the current platform are not
defined by the module.  The specific list of defined symbols is available as
``errno.errorcode.keys()``.  Symbols available can include:


.. data:: EPERM

   Operation not permitted


.. data:: ENOENT

   No such file or directory


.. data:: ESRCH

   No such process


.. data:: EINTR

   Interrupted system call.

   .. seealso::
      This error is mapped to the exception :exc:`InterruptedError`.


.. data:: EIO

   I/O error


.. data:: ENXIO

   No such device or address


.. data:: E2BIG

   Arg list too long


.. data:: ENOEXEC

   Exec format error


.. data:: EBADF

   Bad file number


.. data:: ECHILD

   No child processes


.. data:: EAGAIN

   Try again


.. data:: ENOMEM

   Out of memory


.. data:: EACCES

   Permission denied


.. data:: EFAULT

   Bad address


.. data:: ENOTBLK

   Block device required


.. data:: EBUSY

   Device or resource busy


.. data:: EEXIST

   File exists


.. data:: EXDEV

   Cross-device link


.. data:: ENODEV

   No such device


.. data:: ENOTDIR

   Not a directory


.. data:: EISDIR

   Is a directory


.. data:: EINVAL

   Invalid argument


.. data:: ENFILE

   File table overflow


.. data:: EMFILE

   Too many open files


.. data:: ENOTTY

   Not a typewriter


.. data:: ETXTBSY

   Text file busy


.. data:: EFBIG

   File too large


.. data:: ENOSPC

   No space left on device


.. data:: ESPIPE

   Illegal seek


.. data:: EROFS

   Read-only file system


.. data:: EMLINK

   Too many links


.. data:: EPIPE

   Broken pipe


.. data:: EDOM

   Math argument out of domain of func


.. data:: ERANGE

   Math result not representable


.. data:: EDEADLK

   Resource deadlock would occur


.. data:: ENAMETOOLONG

   File name too long


.. data:: ENOLCK

   No record locks available


.. data:: ENOSYS

   Function not implemented


.. data:: ENOTEMPTY

   Directory not empty


.. data:: ELOOP

   Too many symbolic links encountered


.. data:: EWOULDBLOCK

   Operation would block


.. data:: ENOMSG

   No message of desired type


.. data:: EIDRM

   Identifier removed


.. data:: ECHRNG

   Channel number out of range


.. data:: EL2NSYNC

   Level 2 not synchronized


.. data:: EL3HLT

   Level 3 halted


.. data:: EL3RST

   Level 3 reset


.. data:: ELNRNG

   Link number out of range


.. data:: EUNATCH

   Protocol driver not attached


.. data:: ENOCSI

   No CSI structure available


.. data:: EL2HLT

   Level 2 halted


.. data:: EBADE

   Invalid exchange


.. data:: EBADR

   Invalid request descriptor


.. data:: EXFULL

   Exchange full


.. data:: ENOANO

   No anode


.. data:: EBADRQC

   Invalid request code


.. data:: EBADSLT

   Invalid slot


.. data:: EDEADLOCK

   File locking deadlock error


.. data:: EBFONT

   Bad font file format


.. data:: ENOSTR

   Device not a stream


.. data:: ENODATA

   No data available


.. data:: ETIME

   Timer expired


.. data:: ENOSR

   Out of streams resources


.. data:: ENONET

   Machine is not on the network


.. data:: ENOPKG

   Package not installed


.. data:: EREMOTE

   Object is remote


.. data:: ENOLINK

   Link has been severed


.. data:: EADV

   Advertise error


.. data:: ESRMNT

   Srmount error


.. data:: ECOMM

   Communication error on send


.. data:: EPROTO

   Protocol error


.. data:: EMULTIHOP

   Multihop attempted


.. data:: EDOTDOT

   RFS specific error


.. data:: EBADMSG

   Not a data message


.. data:: EOVERFLOW

   Value too large for defined data type


.. data:: ENOTUNIQ

   Name not unique on network


.. data:: EBADFD

   File descriptor in bad state


.. data:: EREMCHG

   Remote address changed


.. data:: ELIBACC

   Can not access a needed shared library


.. data:: ELIBBAD

   Accessing a corrupted shared library


.. data:: ELIBSCN

   .lib section in a.out corrupted


.. data:: ELIBMAX

   Attempting to link in too many shared libraries


.. data:: ELIBEXEC

   Cannot exec a shared library directly


.. data:: EILSEQ

   Illegal byte sequence


.. data:: ERESTART

   Interrupted system call should be restarted


.. data:: ESTRPIPE

   Streams pipe error


.. data:: EUSERS

   Too many users


.. data:: ENOTSOCK

   Socket operation on non-socket


.. data:: EDESTADDRREQ

   Destination address required


.. data:: EMSGSIZE

   Message too long


.. data:: EPROTOTYPE

   Protocol wrong type for socket


.. data:: ENOPROTOOPT

   Protocol not available


.. data:: EPROTONOSUPPORT

   Protocol not supported


.. data:: ESOCKTNOSUPPORT

   Socket type not supported


.. data:: EOPNOTSUPP

   Operation not supported on transport endpoint


.. data:: EPFNOSUPPORT

   Protocol family not supported


.. data:: EAFNOSUPPORT

   Address family not supported by protocol


.. data:: EADDRINUSE

   Address already in use


.. data:: EADDRNOTAVAIL

   Cannot assign requested address


.. data:: ENETDOWN

   Network is down


.. data:: ENETUNREACH

   Network is unreachable


.. data:: ENETRESET

   Network dropped connection because of reset


.. data:: ECONNABORTED

   Software caused connection abort


.. data:: ECONNRESET

   Connection reset by peer


.. data:: ENOBUFS

   No buffer space available


.. data:: EISCONN

   Transport endpoint is already connected


.. data:: ENOTCONN

   Transport endpoint is not connected


.. data:: ESHUTDOWN

   Cannot send after transport endpoint shutdown


.. data:: ETOOMANYREFS

   Too many references: cannot splice


.. data:: ETIMEDOUT

   Connection timed out


.. data:: ECONNREFUSED

   Connection refused


.. data:: EHOSTDOWN

   Host is down


.. data:: EHOSTUNREACH

   No route to host


.. data:: EALREADY

   Operation already in progress


.. data:: EINPROGRESS

   Operation now in progress


.. data:: ESTALE

   Stale NFS file handle


.. data:: EUCLEAN

   Structure needs cleaning


.. data:: ENOTNAM

   Not a XENIX named type file


.. data:: ENAVAIL

   No XENIX semaphores available


.. data:: EISNAM

   Is a named type file


.. data:: EREMOTEIO

   Remote I/O error


.. data:: EDQUOT

   Quota exceeded

