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

名称

gelf_update_ehdr, gelf_update_phdr, gelf_update_shdr基本的な ELF データ構造を更新する

ライブラリ

ELF Access Library (libelf, -lelf)

書式

#include < gelf.h>

int
gelf_update_ehdr( Elf *elf, GElf_Ehdr *ehdr);

int
gelf_update_phdr( Elf *elf, int ndx, GElf_Phdr *phdr);

int
gelf_update_shdr( Elf_Scn *scn, GElf_Shdr *shdr);

解説

これらの関数は、基本的な ELF 記述子で ELF データ構造を更新するために使用されます。基本的な ELF 記述子のクラス依存のデータ構造は、クラスから独立している GElf 記述子のデータを使用して更新され、基本的な ELF データ構造は、“dirty” (汚い) とマークされます。ターゲット ELF データ構造にコピーされる値が、表現の制限を超えるなら、変換プロセスは、エラーシグナルを生成します。 GElf 記述子は gelf(3) で説明されています。

関数 gelf_update_ehdr() は、クラスから独立している実行形式ヘッダ ehdr の値で ELF 実行形式ヘッダを更新します。

関数 gelf_update_phdr() は、クラスから独立しているプログラムヘッダ phdr の値でインデックス ndx の ELF プログラムヘッダ構造を更新します。

関数 gelf_update_shdr() は、引数 shdr の値でセクション記述子 scn に関連している ELF セクションヘッダ構造を更新します。

戻り値

これらの関数は、成功で 0 以外の整数を返し、エラーの場合に 0 を返します。

エラー

これらの関数は、次のエラーで失敗するかもしれません:
[ ELF_E_ARGUMENT]
引数 elf, ehdr, phdr, scn または shdr が NULL でした。
[ ELF_E_ARGUMENT]
引数 elf が ELF オブジェクトのための記述子ではありませんでした。
[ ELF_E_ARGUMENT]
引数 elf には、サポートされていない ELF のクラスがありました。
[ ELF_E_ARGUMENT]
引数 ndx がプログラムヘッダテーブルのエントリの数を超えました。
[ ELF_E_ARGUMENT]
セクション記述子 scn が、ELF 記述子に関連づけられませんでした。
[ ELF_E_MODE]
ELF 記述子 elf が、書き込みまたは更新のためにオープンされていませんでした。
[ ELF_E_RESOURCE]
メモリ不足状態が検出されました。
August 27, 2006 FreeBSD