Namespaces
Variants

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