最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

<cerrno>

# cerrno

`<cerrno>`ヘッダでは、標準ライブラリで発生したエラーの状態を表すマクロ`errno`、およびエラー値を表す定数マクロが定義される。

## エラーマクロ

名前 | 説明 | 対応バージョン
--- | --- | ---
`errno` | 標準ライブラリで発生したエラーの状態を表すマクロ |

## エラー値マクロ

以下のマクロは、標準ライブラリの機能によって`errno`に代入される、`int`型の定数値である。これらのマクロは、`#if`ディレティブでも使用できる。

`<cerrno>`ヘッダで定義されるマクロは、

- C++03では、C標準ライブラリの`<errno.h>`と同じである
- C++11以降では、POSIXの`<errno.h>`と同じである

名前 | 説明 | 対応バージョン
--- | --- | ---
`ECONNREFUSED` | 接続が拒否された | C++11
`EIO` | I/Oエラー | C++11
`ENODEV` | そのようなデバイスはない | C++11
`ENOTEMPTY` | ディレクトリが空ではない | C++11
`ERANGE` | 結果が大きすぎる(値域エラー) |
`E2BIG` | 引数リストが長すぎる | C++11
`ECONNRESET` | 接続がリセットされた | C++11
`EISCONN` | ソケットが接続されている | C++11
`ENOENT` | そのようなファイルやディレクトリはない | C++11
`ENOTRECOVERABLE` | ロックが回復不能 | C++11
`EROFS` | ファイルシステムが読み取り専用 | C++11
`EACCES` | 許可されていない | C++11
`EDEADLK` | リソースのデッドロックを回避した | C++11
`EISDIR` | ディレクトリである | C++11
`ENOEXEC` | 実行ファイル形式のエラー | C++11
`ENOTSOCK` | ソケットではない | C++11
`ESPIPE` | 無効なシーク | C++11
`EADDRINUSE` | アドレスがすでに使用されている | C++11
`EDESTADDRREQ` | 宛先アドレスが必要 | C++11
`ELOOP` | シンボリックリンクが多すぎる | C++11
`ENOLCK` | 利用できるロックがない | C++11
`ENOTSUP` | 操作がサポートされていない | C++11
`ESRCH` | そのようなプロセスはない | C++11
`EADDRNOTAVAIL` | アドレスが使用できない | C++11
`EDOM` | 引数が領域外(ドメインエラー, 定義域エラー) |
`EMFILE` | 開いているファイルが多すぎる | C++11
`ENOLINK` | リンクが切れている | C++11
`ENOTTY` | I/O制御操作が不適切 | C++11
`ETIME` | タイムアウト | C++11
`EAFNOSUPPORT` | アドレスファミリーがサポートされていない | C++11
`EEXIST` | ファイルが存在する | C++11
`EMLINK` | リンクが多すぎる | C++11
`ENOMEM` | メモリ領域に十分な空きがない | C++11
`ENXIO` | そのようなデバイスやアドレスはない | C++11
`ETIMEDOUT` | 操作がタイムアウト | C++11
`EAGAIN` | リソースが一時的に利用不可 | C++11
`EFAULT` | アドレスが不正 | C++11
`EMSGSIZE` | メッセージが長すぎる | C++11
`ENOMSG` | 要求された型のメッセージがない | C++11
`EOPNOTSUPP` | ソケットでサポートされていない操作 | C++11
`ETXTBSY` | テキストファイルが使用中 | C++11
`EALREADY` | 接続がすでに処理中 | C++11
`EFBIG` | ファイルが大きすぎる | C++11
`ENAMETOOLONG` | ファイル名が長すぎる | C++11
`ENOPROTOOPT` | 指定されたプロトコルが利用できない | C++11
`EOVERFLOW` | データ型に対して値が大きすぎる | C++11
`EWOULDBLOCK` | 操作がブロッキングされる見込み | C++11
`EBADF` | ファイルディスクリプタが不正 | C++11
`EHOSTUNREACH` | ホストに到達不能 | C++11
`ENETDOWN` | ネットワークが不通 | C++11
`ENOSPC` | デバイスに空き領域がない | C++11
`EOWNERDEAD` | ミューテックスを所有している間に終了した | C++11
`EXDEV` | 不適切なリンク | C++11
`EBADMSG` | メッセージが不正 | C++11
`EIDRM` | 識別子が削除された | C++11
`ENETRESET` | 接続がネットワーク側から中止された | C++11
`ENOSR` | 指定されたストリームリソースがない | C++11
`EPERM` | 操作が許可されていない | C++11
`EBUSY` | リソースが使用中 | C++11
`EILSEQ` | 不正なバイト列 | C++11
`ENETUNREACH` | ネットワークが到達不能である | C++11
`ENOSTR` | ストリームではない | C++11
`EPIPE` | パイプが壊れている | C++11
`ECANCELED` | 操作がキャンセルされた | C++11
`EINPROGRESS` | 操作が実行中である | C++11
`ENFILE` | システム全体で開いているファイルが多すぎる | C++11
`ENOSYS` | 関数がサポートされていない(実装されていない) | C++11
`EPROTO` | プロトコルエラー | C++11
`ECHILD` | 子プロセスがない | C++11
`EINTR` | 関数呼び出しが割り込まれた | C++11
`ENOBUFS` | 使用可能なバッファ空間がない | C++11
`ENOTCONN` | ソケットが接続されていない | C++11
`EPROTONOSUPPORT` | プロトコルがサポートされていない | C++11
`ECONNABORTED` | 接続が中止された | C++11
`EINVAL` | 引数が無効 | C++11
`ENODATA` | ストリームの読み出しキューの先頭に読み出し可能なメッセージがない | C++11
`ENOTDIR` | ディレクトリではない | C++11
`EPROTOTYPE` | ソケットに指定できないプロトコルタイプ | C++11

## 関連項目

- `<system_error>`