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]
- メモリ不足状態が検出されました。
関連項目
elf(3), elf_flagelf(3), elf_flagphdr(3), elf_flagshdr(3), gelf(3), gelf_getehdr(3), gelf_getphdr(3), gelf_getshdr(3)August 27, 2006 | FreeBSD |