エラー処理¶
libuvでは、エラーは負の値を持つ定数で表されます。目安として、状態を表す引数がある場合や、API関数が整数を返す場合、負の値はエラーを意味します。
コールバックを受け取る関数がエラーを返した場合、そのコールバックが呼び出されることはありません。
注記
実装の詳細: Unixでは、エラーコードは符号を反転したerrno(つまり-errno)です。一方、Windowsではlibuvが任意の負の値として定義しています。
エラー定数¶
-
UV_E2BIG¶
引数リストが長すぎる
-
UV_EACCES¶
アクセスが拒否された
-
UV_EADDRINUSE¶
アドレスが既に使われている
-
UV_EADDRNOTAVAIL¶
アドレスを利用できない
-
UV_EAFNOSUPPORT¶
アドレスファミリーがサポートされていない
-
UV_EAGAIN¶
リソースを一時的に利用できない
-
UV_EAI_ADDRFAMILY¶
アドレスファミリーがサポートされていない
-
UV_EAI_AGAIN¶
一時的な失敗
-
UV_EAI_BADFLAGS¶
ai_flagsの値が不正
-
UV_EAI_BADHINTS¶
hintsの値が不正
-
UV_EAI_CANCELED¶
リクエストがキャンセルされた
-
UV_EAI_FAIL¶
恒久的な失敗
-
UV_EAI_FAMILY¶
ai_familyがサポートされていない
-
UV_EAI_MEMORY¶
メモリ不足
-
UV_EAI_NODATA¶
アドレスがない
-
UV_EAI_NONAME¶
不明なノードまたはサービス
-
UV_EAI_OVERFLOW¶
引数バッファのオーバーフロー
-
UV_EAI_PROTOCOL¶
解決されたプロトコルが不明
-
UV_EAI_SERVICE¶
このソケットの種類ではサービスを利用できない
-
UV_EAI_SOCKTYPE¶
ソケットの種類がサポートされていない
-
UV_EALREADY¶
接続処理が既に進行中
-
UV_EBADF¶
ファイル記述子が不正
-
UV_EBUSY¶
リソースが使用中またはロックされている
-
UV_ECANCELED¶
操作がキャンセルされた
-
UV_ECHARSET¶
不正なUnicode文字
-
UV_ECONNABORTED¶
ソフトウェアが接続を中断させた
-
UV_ECONNREFUSED¶
接続が拒否された
-
UV_ECONNRESET¶
接続が相手側によってリセットされた
-
UV_EDESTADDRREQ¶
宛先アドレスが必要
-
UV_EEXIST¶
ファイルが既に存在する
-
UV_EFAULT¶
システムコールの引数のアドレスが不正
-
UV_EFBIG¶
ファイルが大きすぎる
-
UV_EHOSTUNREACH¶
ホストに到達できない
-
UV_EINTR¶
システムコールが中断された
-
UV_EINVAL¶
引数が不正
-
UV_EIO¶
入出力エラー
-
UV_EISCONN¶
ソケットは既に接続されている
-
UV_EISDIR¶
ディレクトリに対する不正な操作
-
UV_ELOOP¶
シンボリックリンクが多すぎる
-
UV_EMFILE¶
開いているファイルが多すぎる
-
UV_EMSGSIZE¶
メッセージが長すぎる
-
UV_ENAMETOOLONG¶
名前が長すぎる
-
UV_ENETDOWN¶
ネットワークが停止している
-
UV_ENETUNREACH¶
ネットワークに到達できない
-
UV_ENFILE¶
ファイルテーブルのオーバーフロー
-
UV_ENOBUFS¶
利用できるバッファ領域がない
-
UV_ENODEV¶
該当するデバイスがない
-
UV_ENOENT¶
該当するファイルまたはディレクトリがない
-
UV_ENOMEM¶
メモリが不足している
-
UV_ENONET¶
マシンがネットワーク上にない
-
UV_ENOPROTOOPT¶
プロトコルを利用できない
-
UV_ENOSPC¶
デバイスに空き領域がない
-
UV_ENOSYS¶
関数が実装されていない
-
UV_ENOTCONN¶
ソケットが接続されていない
-
UV_ENOTDIR¶
ディレクトリではない
-
UV_ENOTEMPTY¶
ディレクトリが空ではない
-
UV_ENOTSOCK¶
ソケットではないものに対するソケット操作
-
UV_ENOTSUP¶
ソケットでサポートされていない操作
-
UV_EOVERFLOW¶
定義されたデータ型に対して値が大きすぎる
-
UV_EPERM¶
操作が許可されていない
-
UV_EPIPE¶
パイプが切断されている
-
UV_EPROTO¶
プロトコルエラー
-
UV_EPROTONOSUPPORT¶
プロトコルがサポートされていない
-
UV_EPROTOTYPE¶
ソケットに適合しない種類のプロトコル
-
UV_ERANGE¶
結果が大きすぎる
-
UV_EROFS¶
読み取り専用のファイルシステム
-
UV_ESHUTDOWN¶
通信端点のシャットダウン後は送信できない
-
UV_ESPIPE¶
シークが不正
-
UV_ESRCH¶
該当するプロセスがない
-
UV_ETIMEDOUT¶
接続がタイムアウトした
-
UV_ETXTBSY¶
テキストファイルが使用中
-
UV_EXDEV¶
デバイスをまたぐリンクは許可されていない
-
UV_UNKNOWN¶
不明なエラー
-
UV_EOF¶
ファイルの終端
-
UV_ENXIO¶
該当するデバイスまたはアドレスがない
-
UV_EMLINK¶
リンクが多すぎる
-
UV_ENOTTY¶
デバイスに適合しないioctl
-
UV_EFTYPE¶
適合しないファイルの種類または形式
-
UV_EILSEQ¶
不正なバイト列
-
UV_ESOCKTNOSUPPORT¶
ソケットの種類がサポートされていない
-
UV_EUNATCH¶
プロトコルドライバーが接続されていない
API¶
-
UV_ERRNO_MAP(iter_macro)¶
上記の各エラー定数に対するiter_macroの一連の呼び出しに展開されるマクロです。iter_macroは2つの引数で呼び出されます。1つ目はUV_接頭辞を除いたエラー定数の名前、2つ目はエラーメッセージの文字列リテラルです。
-
const char *uv_strerror(int err)¶
指定されたエラーコードのエラーメッセージを返します。不明なエラーコードで呼び出すと、数バイトのメモリがリークします。
-
char *uv_strerror_r(int err, char *buf, size_t buflen)¶
指定されたエラーコードのエラーメッセージを返します。NUL終端のメッセージは、利用者が渡すバッファbufに格納されます。バッファのサイズは最大buflenバイトです。
バージョン1.22.0で追加。
-
const char *uv_err_name(int err)¶
指定されたエラーコードのエラー名を返します。不明なエラーコードで呼び出すと、数バイトのメモリがリークします。
-
char *uv_err_name_r(int err, char *buf, size_t buflen)¶
指定されたエラーコードのエラー名を返します。NUL終端の名前は、利用者が渡すバッファbufに格納されます。バッファのサイズは最大buflenバイトです。
バージョン1.22.0で追加。
-
int uv_translate_sys_error(int sys_errno)¶
指定されたプラットフォーム依存のエラーコードに対応するlibuvのエラーコードを返します。UnixではPOSIXエラーコード(errnoに格納されるもの)、WindowsではWin32エラーコード(GetLastError()またはWSAGetLastError()が返すもの)が対象です。
sys_errnoが既にlibuvのエラーであれば、その値をそのまま返します。
バージョン1.10.0で変更: 関数が公開APIとして宣言されました。