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

名称

gelf_getrela, gelf_update_rela加数 (addend) で ELF 再配置エントリを読み込んで、更新します

ライブラリ

ELF Access Library (libelf, -lelf)

書式

#include < gelf.h>

GElf_Rela *
gelf_getrela( Elf_Data *data, int ndx, GElf_Rela *rela);

int
gelf_update_rela( Elf_Data *data, int ndx, GElf_Rela *rela);

解説

これらの便利な関数は、ELF オブジェクトでクラスに依存する Elf32_Rela または Elf64_Rela 構造を検索して、更新するために使用されます。

引数 data は、タイプ SHT_RELA のセクションに関連している Elf_Data 記述子です。引数 ndx は、検索されるか、または更新されるエントリのインデックスです。クラスから独立している GElf_Rela 構造は gelf(3) で説明されています。

関数 gelf_getrela() は、データバッファ data のインデックス ndx でクラス依存のエントリを検索して、クラスから独立している形式に変換した後に、引数 rela によって指された送り先にそれをコピーします。

関数 gelf_update_rela() は、引数 rela によって指されたクラスから独立しているエントリをクラス依存する形式に変換し、引数 data によって記述されたデータバッファのインデックス ndx のエントリにそれを書き込みます。関数 gelf_update_rela() は、クラスから独立している表現の値のどれかがターゲットタイプの表現可能な制限を超えるなら、エラーシグナルを生成します。

戻り値

関数 gelf_getrela() は、成功したなら、引数 rela の値を返し、エラーの場合は、NULL を返します。関数 gelf_update_rela() は、成功したなら、0 以外の値を返し、エラーの場合は 0 を返します。

エラー

これらの関数は、次のエラーで失敗するかもしれません:
[ ELF_E_ARGUMENT]
引数 data または rela が NULL でした。
[ ELF_E_ARGUMENT]
引数 ndx は、0 未満またはデータ記述子のエントリの数より大きかったです。
[ ELF_E_ARGUMENT]
データ記述子 data は、タイプ SHT_RELA のセクションに関連づけられませんでした。
[ ELF_E_RANGE]
値は、ターゲットタイプで表現可能ではありませんでした。
August 29, 2006 FreeBSD