Error numbers
From cppreference.net
<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)
|
ストリーム 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 << "既知のエラーコードとメッセージ:\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 ); }
出力例:
既知のエラーコード/メッセージ:
E2BIG: 引数リストが長すぎます
EACCES: 権限が拒否されました
EADDRINUSE: アドレスは既に使用中です
EADDRNOTAVAIL: 要求されたアドレスを割り当てられません
EAFNOSUPPORT: プロトコルでサポートされていないアドレスファミリーです
EAGAIN: リソースが一時的に利用できません
EALREADY: 操作は既に進行中です
EBADF: 不正なファイル記述子です
EBADMSG: 不正なメッセージです
EBUSY: デバイスまたはリソースがビジー状態です
ECANCELED: 操作がキャンセルされました
ECHILD: 子プロセスがありません
ECONNABORTED: ソフトウェアによる接続中止
ECONNREFUSED: 接続が拒否されました
ECONNRESET: 接続がピアによってリセットされました
EDEADLK: リソースデッドロックを回避しました
EDESTADDRREQ: 宛先アドレスが必要です
EDOM: 数値引数が定義域外です
EEXIST: ファイルが既に存在します
EFAULT: 不正なアドレスです
EFBIG: ファイルが大きすぎます
EHOSTUNREACH: ホストへの経路がありません
EIDRM: 識別子が削除されました
EILSEQ: 無効または不完全なマルチバイト文字またはワイド文字です
EINPROGRESS: 操作は現在進行中です
EINTR: 割り込まれたシステムコールです
EINVAL: 無効な引数です
EIO: 入力/出力エラーです
EISCONN: トランスポートエンドポイントは既に接続されています
EISDIR: ディレクトリです
ELOOP: シンボリックリンクの階層が深すぎます
EMFILE: 開いているファイルが多すぎます
EMLINK: リンクが多すぎます
EMSGSIZE: メッセージが長すぎます
ENAMETOOLONG: ファイル名が長すぎます
ENETDOWN: ネットワークがダウンしています
ENETRESET: リセット時にネットワークが接続を切断しました
ENETUNREACH: ネットワークに到達できません
ENFILE: システム内で開いているファイルが多すぎます
ENOBUFS: バッファ領域が利用できません
ENODATA: 利用可能なデータがありません
ENODEV: そのようなデバイスはありません
ENOENT: そのようなファイルまたはディレクトリはありません
ENOEXEC: 実行形式エラーです
ENOLCK: 利用可能なロックがありません
ENOLINK: リンクが切断されました
ENOMEM: メモリを割り当てられません
ENOMSG: 要求された型のメッセージがありません
ENOPROTOOPT: プロトコルが利用できません
ENOSPC: デバイスに空き領域がありません
ENOSR: ストリームリソースが不足しています
ENOSTR: デバイスはストリームではありません
ENOSYS: 機能が実装されていません
ENOTCONN: トランスポートエンドポイントが接続されていません
ENOTDIR: ディレクトリではありません
ENOTEMPTY: ディレクトリが空ではありません
ENOTRECOVERABLE: 状態が回復不能です
ENOTSOCK: ソケット以外に対するソケット操作です
ENOTSUP: 操作がサポートされていません
ENOTTY: デバイスに対する不適切なioctlです
ENXIO: そのようなデバイスまたはアドレスはありません
EOPNOTSUPP: 操作がサポートされていません
EOVERFLOW: 値が定義されたデータ型に対して大きすぎます
EOWNERDEAD: 所有者が終了しました
EPERM: 操作が許可されていません
EPIPE: 壊れたパイプです
EPROTO: プロトコルエラーです
EPROTONOSUPPORT: プロトコルがサポートされていません
EPROTOTYPE: ソケットに対するプロトコルの型が間違っています
ERANGE: 数値結果が範囲外です
EROFS: 読み取り専用ファイルシステムです
ESPIPE: 不正なシークです
ESRCH: そのようなプロセスはありません
ETIME: タイマーが期限切れです
ETIMEDOUT: 接続がタイムアウトしました
ETXTBSY: テキストファイルがビジー状態です
EWOULDBLOCK: リソースが一時的に利用できません
EXDEV: 無効なクロスデバイスリンクです
関連項目
|
(C++11)
|
すべての標準
std::error_condition
列挙値をリストする
<cerrno>
マクロ定数
(クラス) |
|
POSIX互換のスレッドローカルエラー番号変数に展開されるマクロ
(マクロ変数) |
|
|
現在のエラーに対応する文字列を
stderr
に表示する
(関数) |
|
|
指定されたエラーコードのテキスト版を返す
(関数) |
|
|
C documentation
for
Error numbers
|
|