エラー番号
From cppreference.com
<cerrno>で定義されている各マクロは、int型の整数定数式に展開され、それぞれが正の値を持つことで、ほとんどのPOSIXエラーコードに対応しています。以下の定数が定義されています(実装では、'E'に続いて数字または大文字のアルファベットで始まるものなら、さらに定義することができます)。
| ヘッダー
<cerrno> で定義 | |
| E2BIG (C++11) |
引数リストが長すぎる (マクロ定数) |
| EACCES (C++11) |
権限がない (マクロ定数) |
| EADDRINUSE (C++11) |
アドレスが使用中 (マクロ定数) |
| EADDRNOTAVAIL (C++11) |
アドレスが利用できない (マクロ定数) |
| EAFNOSUPPORT (C++11) |
アドレスファミリがサポートされていない (マクロ定数) |
| EAGAIN (C++11) |
リソースが利用できない、再試行してください (マクロ定数) |
| EALREADY (C++11) |
接続がすでに進行中 (マクロ定数) |
| EBADF (C++11) |
不正なファイルディスクリプタ (マクロ定数) |
| EBADMSG (C++11) |
不正なメッセージ (マクロ定数) |
| EBUSY (C++11) |
デバイスまたはリソースがビジー (マクロ定数) |
| ECANCELED (C++11) |
操作がキャンセルされた (マクロ定数) |
| ECHILD (C++11) |
子プロセスがない (マクロ定数) |
| ECONNABORTED (C++11) |
接続が中止された (マクロ定数) |
| ECONNREFUSED (C++11) |
接続が拒否された (マクロ定数) |
| ECONNRESET (C++11) |
接続がリセットされた (マクロ定数) |
| EDEADLK (C++11) |
リソースデッドロックが発生する (マクロ定数) |
| EDESTADDRREQ (C++11) |
宛先アドレスが必要 (マクロ定数) |
| EDOM |
数学的な引数が関数の定義域外です (マクロ定数) |
| EEXIST (C++11) |
ファイルが存在する (マクロ定数) |
| EFAULT (C++11) |
不正なアドレス (マクロ定数) |
| EFBIG (C++11) |
ファイルが大きすぎる (マクロ定数) |
| EHOSTUNREACH (C++11) |
ホストが到達不能 (マクロ定数) |
| EIDRM (C++11) |
識別子が削除された (マクロ定数) |
| EILSEQ (C++11) |
不正なバイトシーケンス (マクロ定数) |
| EINPROGRESS (C++11) |
操作が進行中 (マクロ定数) |
| EINTR (C++11) |
関数が中断された (マクロ定数) |
| EINVAL (C++11) |
無効な引数 (マクロ定数) |
| EIO (C++11) |
I/Oエラー (マクロ定数) |
| EISCONN (C++11) |
ソケットが接続されている (マクロ定数) |
| EISDIR (C++11) |
ディレクトリです (マクロ定数) |
| ELOOP (C++11) |
シンボリックリンクのレベルが多すぎる (マクロ定数) |
| EMFILE (C++11) |
ファイルディスクリプタの値が大きすぎる (マクロ定数) |
| EMLINK (C++11) |
リンクが多すぎる (マクロ定数) |
| EMSGSIZE (C++11) |
メッセージが大きすぎる (マクロ定数) |
| ENAMETOOLONG (C++11) |
ファイル名が長すぎる (マクロ定数) |
| ENETDOWN (C++11) |
ネットワークがダウンしている (マクロ定数) |
| ENETRESET (C++11) |
ネットワークによって接続が中止された (マクロ定数) |
| ENETUNREACH (C++11) |
ネットワークが到達不能 (マクロ定数) |
| ENFILE (C++11) |
システムで開いているファイルが多すぎる (マクロ定数) |
| ENOBUFS (C++11) |
バッファスペースが利用できない (マクロ定数) |
| ENODATA (C++11) |
STREAMヘッド読み込みキューにメッセージが利用できない (マクロ定数) |
| ENODEV (C++11) |
そのようなデバイスはない (マクロ定数) |
| ENOENT (C++11) |
そのようなファイルまたはディレクトリはない (マクロ定数) |
| ENOEXEC (C++11) |
実行可能ファイルフォーマットエラー (マクロ定数) |
| ENOLCK (C++11) |
ロックが利用できない (マクロ定数) |
| ENOLINK (C++11) |
リンクが切断された (マクロ定数) |
| ENOMEM (C++11) |
スペースが不足している (マクロ定数) |
| ENOMSG (C++11) |
目的のタイプのメッセージがない (マクロ定数) |
| ENOPROTOOPT (C++11) |
プロトコルが利用できない (マクロ定数) |
| ENOSPC (C++11) |
デバイスにスペースが残っていない (マクロ定数) |
| ENOSR (C++11) |
STREAMリソースがない (マクロ定数) |
| ENOSTR (C++11) |
STREAMではない (マクロ定数) |
| ENOSYS (C++11) |
機能がサポートされていない (マクロ定数) |
| ENOTCONN (C++11) |
ソケットが接続されていない (マクロ定数) |
| ENOTDIR (C++11) |
ディレクトリではない (マクロ定数) |
| ENOTEMPTY (C++11) |
ディレクトリが空ではない (マクロ定数) |
| ENOTRECOVERABLE (C++11) |
状態が回復不可能 (マクロ定数) |
| ENOTSOCK (C++11) |
ソケットではない (マクロ定数) |
| ENOTSUP (C++11) |
サポートされていない (マクロ定数) |
| ENOTTY (C++11) |
不適切なI/O制御操作 (マクロ定数) |
| ENXIO (C++11) |
そのようなデバイスまたはアドレスはない (マクロ定数) |
| EOPNOTSUPP (C++11) |
ソケットで操作がサポートされていない (マクロ定数) |
| EOVERFLOW (C++11) |
データ型に格納するには値が大きすぎる (マクロ定数) |
| EOWNERDEAD (C++11) |
前の所有者が死亡した (マクロ定数) |
| EPERM (C++11) |
操作が許可されていない (マクロ定数) |
| EPIPE (C++11) |
パイプが破損している (マクロ定数) |
| EPROTO (C++11) |
プロトコルエラー (マクロ定数) |
| EPROTONOSUPPORT (C++11) |
プロトコルがサポートされていない (マクロ定数) |
| EPROTOTYPE (C++11) |
ソケットに対してプロトコルが間違っている (マクロ定数) |
| ERANGE |
結果が大きすぎます (マクロ定数) |
| EROFS (C++11) |
読み取り専用ファイルシステム (マクロ定数) |
| ESPIPE (C++11) |
無効なシーク (マクロ定数) |
| ESRCH (C++11) |
そのようなプロセスはない (マクロ定数) |
| ETIME (C++11) |
Stream ioctl()タイムアウト (マクロ定数) |
| ETIMEDOUT (C++11) |
接続がタイムアウトした (マクロ定数) |
| ETXTBSY (C++11) |
テキストファイルがビジー (マクロ定数) |
| EWOULDBLOCK (C++11) |
操作がブロックされる (マクロ定数) |
| EXDEV (C++11) |
クロスデバイスリンク (マクロ定数) |
EOPNOTSUPPとENOTSUPの値は同じでもよいですが、それ以外の場合はすべての一意の値が必要とされます。また、EAGAINとEWOULDBLOCKの値は同じでもよいです。
[編集] 例
このコードを実行
#include <cerrno> #include <cstring> #include <iomanip> #include <iostream> #define SHOW(x) std::cout << std::setw(15) << #x << ": " << std::strerror(x) << '\n' int main() { std::cout << "Known error codes/messages:\n\n"; SHOW( E2BIG ); SHOW( EACCES ); SHOW( EADDRINUSE ); SHOW( EADDRNOTAVAIL ); SHOW( EAFNOSUPPORT ); SHOW( EAGAIN ); SHOW( EALREADY ); SHOW( EBADF ); SHOW( EBADMSG ); SHOW( EBUSY ); SHOW( ECANCELED ); SHOW( ECHILD ); SHOW( ECONNABORTED ); SHOW( ECONNREFUSED ); SHOW( ECONNRESET ); SHOW( EDEADLK ); SHOW( EDESTADDRREQ ); SHOW( EDOM ); SHOW( EEXIST ); SHOW( EFAULT ); SHOW( EFBIG ); SHOW( EHOSTUNREACH ); SHOW( EIDRM ); SHOW( EILSEQ ); SHOW( EINPROGRESS ); SHOW( EINTR ); SHOW( EINVAL ); SHOW( EIO ); SHOW( EISCONN ); SHOW( EISDIR ); SHOW( ELOOP ); SHOW( EMFILE ); SHOW( EMLINK ); SHOW( EMSGSIZE ); SHOW( ENAMETOOLONG ); SHOW( ENETDOWN ); SHOW( ENETRESET ); SHOW( ENETUNREACH ); SHOW( ENFILE ); SHOW( ENOBUFS ); SHOW( ENODATA ); SHOW( ENODEV ); SHOW( ENOENT ); SHOW( ENOEXEC ); SHOW( ENOLCK ); SHOW( ENOLINK ); SHOW( ENOMEM ); SHOW( ENOMSG ); SHOW( ENOPROTOOPT ); SHOW( ENOSPC ); SHOW( ENOSR ); SHOW( ENOSTR ); SHOW( ENOSYS ); SHOW( ENOTCONN ); SHOW( ENOTDIR ); SHOW( ENOTEMPTY ); SHOW( ENOTRECOVERABLE ); SHOW( ENOTSOCK ); SHOW( ENOTSUP ); SHOW( ENOTTY ); SHOW( ENXIO ); SHOW( EOPNOTSUPP ); SHOW( EOVERFLOW ); SHOW( EOWNERDEAD ); SHOW( EPERM ); SHOW( EPIPE ); SHOW( EPROTO ); SHOW( EPROTONOSUPPORT ); SHOW( EPROTOTYPE ); SHOW( ERANGE ); SHOW( EROFS ); SHOW( ESPIPE ); SHOW( ESRCH ); SHOW( ETIME ); SHOW( ETIMEDOUT ); SHOW( ETXTBSY ); SHOW( EWOULDBLOCK ); SHOW( EXDEV ); }
実行結果の例
Known error codes/messages:
E2BIG: Argument list too long
EACCES: Permission denied
EADDRINUSE: Address already in use
EADDRNOTAVAIL: Cannot assign requested address
EAFNOSUPPORT: Address family not supported by protocol
EAGAIN: Resource temporarily unavailable
EALREADY: Operation already in progress
EBADF: Bad file descriptor
EBADMSG: Bad message
EBUSY: Device or resource busy
ECANCELED: Operation canceled
ECHILD: No child processes
ECONNABORTED: Software caused connection abort
ECONNREFUSED: Connection refused
ECONNRESET: Connection reset by peer
EDEADLK: Resource deadlock avoided
EDESTADDRREQ: Destination address required
EDOM: Numerical argument out of domain
EEXIST: File exists
EFAULT: Bad address
EFBIG: File too large
EHOSTUNREACH: No route to host
EIDRM: Identifier removed
EILSEQ: Invalid or incomplete multibyte or wide character
EINPROGRESS: Operation now in progress
EINTR: Interrupted system call
EINVAL: Invalid argument
EIO: Input/output error
EISCONN: Transport endpoint is already connected
EISDIR: Is a directory
ELOOP: Too many levels of symbolic links
EMFILE: Too many open files
EMLINK: Too many links
EMSGSIZE: Message too long
ENAMETOOLONG: File name too long
ENETDOWN: Network is down
ENETRESET: Network dropped connection on reset
ENETUNREACH: Network is unreachable
ENFILE: Too many open files in system
ENOBUFS: No buffer space available
ENODATA: No data available
ENODEV: No such device
ENOENT: No such file or directory
ENOEXEC: Exec format error
ENOLCK: No locks available
ENOLINK: Link has been severed
ENOMEM: Cannot allocate memory
ENOMSG: No message of desired type
ENOPROTOOPT: Protocol not available
ENOSPC: No space left on device
ENOSR: Out of streams resources
ENOSTR: Device not a stream
ENOSYS: Function not implemented
ENOTCONN: Transport endpoint is not connected
ENOTDIR: Not a directory
ENOTEMPTY: Directory not empty
ENOTRECOVERABLE: State not recoverable
ENOTSOCK: Socket operation on non-socket
ENOTSUP: Operation not supported
ENOTTY: Inappropriate ioctl for device
ENXIO: No such device or address
EOPNOTSUPP: Operation not supported
EOVERFLOW: Value too large for defined data type
EOWNERDEAD: Owner died
EPERM: Operation not permitted
EPIPE: Broken pipe
EPROTO: Protocol error
EPROTONOSUPPORT: Protocol not supported
EPROTOTYPE: Protocol wrong type for socket
ERANGE: Numerical result out of range
EROFS: Read-only file system
ESPIPE: Illegal seek
ESRCH: No such process
ETIME: Timer expired
ETIMEDOUT: Connection timed out
ETXTBSY: Text file busy
EWOULDBLOCK: Resource temporarily unavailable
EXDEV: Invalid cross-device link[編集] 関連項目
| (C++11) |
すべての標準的な <cerrno> マクロ定数をリストする std::error_condition 列挙型 (クラス) |
| POSIX互換のスレッドローカルなエラー番号変数に展開されるマクロ (マクロ変数) | |
| 現在のエラーに対応する文字列を stderr に表示する (関数) | |
| 与えられたエラーコードのテキスト版を返す (関数) | |
| C言語のドキュメント (エラー番号)
| |