ELF_ERRMSG(3) | FreeBSD Library Functions Manual | ELF_ERRMSG(3) |
名称
elf_errmsg, elf_errno — ELF ライブラリエラーメッセージ操作ライブラリ
ELF Access Library (libelf, -lelf)解説
ELF ライブラリ API を呼び出すの間に、エラーが発生するなら、ライブラリは、エラー番号を使用してエラーエンコードし、後の時点でアプリケーションによって検索するために内部的にエラー番号を保存します。エラー番号は、ELF API 特有のエラーコードに加えて OS で供給されたエラーコードを含みます。 0 のエラー番号値は、エラーを示していません。関数 elf_errno() は、ELF ライブラリによって記録された最後のエラーを検索するのに使用されます。この関数を呼び出すことは、ELF ライブラリの記録されたエラー番号を 0 にリセットする副作用があります。
関数 elf_errmsg() は、引数 error で指定されたエラーの人間に読み込み可能な記述が含まれるヌル文字で終了した文字列を返します。引数 error のための 0 の値は、ELF ライブラリによって最新の遭遇したエラーを検索します。-1 の引数の値は、 elf_errmsg() から NULL が返されないことを保証することを除いて、同様に振る舞います。
戻り値
関数 elf_errno() は、ELF ライブラリが遭遇した最後のエラーをエンコードした 0 でない値を返すか、またはエラーに遭遇しなかったなら、0 を返します。関数 elf_errmsg() は、引数 error の 0 でない値のためのライブラリのローカルな記憶域へのポインタを返します。 0 の引数で、関数は、ライブラリでエラーに遭遇されなかったなら NULL ポインタを返すか、または、そうでなければ適切なメッセージを含むライブラリのローカルな記憶域へのポインタを返します。
使用例
elf_errno() を呼び出すことによって、 ELF ライブラリの記録されたエラー番号をクリアすることができ、そして、返り値を捨てます。
/* clear error */ (void) elf_errno();
つぎの断片を実行することによって、現在のエラー番号の人間に読み込み可能な記述を検索することができます:
int err; const char *errmsg; ... err = elf_errno(); if (err != 0) errmsg = elf_errmsg(err);
バグ
関数 elf_errmsg() は、ローカライズされていません。June 11, 2006 | FreeBSD |