ELF_GETARSYM(3) | FreeBSD Library Functions Manual | ELF_GETARSYM(3) |
名称
elf_getarsym — アーカイブのシンボルテーブルを検索するライブラリ
ELF Access Library (libelf, -lelf)解説
関数 elf_getarsym() は、アーカイブが利用可能であるなら、 ar(1) アーカイブのシンボルテーブルを検索します。引数 elf は、 elf_begin() または elf_memory() を使用してオープンされた ar(1) アーカイブの記述子であるべきです。
アーカイブ elf が n 個のシンボルテーブルのエントリを含むなら、この関数は、n+1 番目の Elf_Arsym 構造体の配列へのポインタを返します。 Elf_Arsym 構造には、次の要素があります:
- char * as_name
- この構造体のメンバは、ヌル文字で終了するシンボル名へのポインタです。
- off_t as_off
- この構造体のメンバは、アーカイブの始まりからアーカイブメンバのヘッダまでのバイトオフセットを含みます。この値は、 elf_rand(3) での使用に適しています。
- unsigned long as_hash
- この構造体のメンバは、 elf_hash(3) によって計算される、シンボル名のための移植可能なハッシュ値を含みます。
返された配列の最後のエントリには、メンバ as_name のための NULL 値、メンバ as_off のための 0 値と as_hash のための ~0UL の不正な値があります。
引数 ptr が NULL でないなら、 elf_getarsym() 関数は、それが指す位置に返された (終わりの見張りのエントリを含む) テーブルエントリの数を格納します。
戻り値
関数 elf_getarsym() は、成功するなら、 Elf_Arsym 構造体の配列へのポインタ返すか、またはエラーに遭遇するなら、NULL ポインタを返します。引数 ptr が NULL でなく、エラーがなかったなら、ライブラリは、それが指す位置に返されたアーカイブシンボルエントリの数を格納します。引数 ptr が NULL でなく、エラーに遭遇したなら、ライブラリは、それが指す位置に 0 を設定します。
エラー
関数 elf_getarsym() は、次のエラーで失敗します:- [ ELF_E_ARGUMENT]
- 引数 elf が NULL でした。
- [ ELF_E_ARGUMENT]
- 引数 elf が ar(1) アーカイブのための記述子ではありませんでした。
August 15, 2006 | FreeBSD |