EN JA
ELF_GETARSYM(3)
ELF_GETARSYM(3) FreeBSD Library Functions Manual ELF_GETARSYM(3)

名称

elf_getarsymアーカイブのシンボルテーブルを検索する

ライブラリ

ELF Access Library (libelf, -lelf)

書式

#include < libelf.h>

Elf_Arsym *
elf_getarsym( Elf *elf, size_t *ptr);

解説

関数 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]
引数 elfar(1) アーカイブのための記述子ではありませんでした。
August 15, 2006 FreeBSD