# 15.16. `errno` --- 標準の 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)

`errno.``EIO`

  I/O エラーです (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`

  レベル 2 で同期がとれていません (Level 2 not synchronized)

`errno.``EL3HLT`

  レベル 3 で終了しました (Level 3 halted)

`errno.``EL3RST`

  レベル 3 でリセットしました (Level 3 reset)

`errno.``ELNRNG`

  リンク番号が範囲を超えています (Link number out of range)

`errno.``EUNATCH`

  プロトコルドライバが接続されていません (Protocol driver not attached)

`errno.``ENOCSI`

  CSI 構造体がありません (No CSI structure available)

`errno.``EL2HLT`

  レベル 2 で終了しました (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 エラーです (Advertise error)

`errno.``ESRMNT`

  Srmount エラーです (Srmount error)

`errno.``ECOMM`

  送信時の通信エラーです (Communication error on send)

`errno.``EPROTO`

  プロトコルエラーです (Protocol error)

`errno.``EMULTIHOP`

  多重ホップを試みました (Multihop attempted)

`errno.``EDOTDOT`

  RFS 特有のエラーです (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`

  a.out の .lib セクションが壊れています (.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`

  無効な NFS ファイルハンドルです (Stale NFS file handle)

`errno.``EUCLEAN`

  構造のクリーニングが必要です (Structure needs cleaning)

`errno.``ENOTNAM`

  XENIX 名前付きファイルではありません (Not a XENIX named type file)

`errno.``ENAVAIL`

  XENIX セマフォは利用できません (No XENIX semaphores available)

`errno.``EISNAM`

  名前付きファイルです (Is a named type file)

`errno.``EREMOTEIO`

  遠隔側の I/O エラーです (Remote I/O error)

`errno.``EDQUOT`

  ディスククオータを超えました (Quota exceeded)