GELF_NEWPHDR(3) | FreeBSD Library Functions Manual | GELF_NEWPHDR(3) |
名称
elf32_newphdr, elf64_newphdr, gelf_newphdr — ELF プログラムヘッダテーブルを割り付けるライブラリ
ELF Access Library (libelf, -lelf)書式
#include < libelf.h> Elf32_Phdr *
elf32_newphdr( Elf *elf, size_t count);
Elf64_Phdr *
elf64_newphdr( Elf *elf, size_t count);
#include < gelf.h>
void *
gelf_newphdr( Elf *elf, size_t count);
解説
これらの関数は、ELF 記述子のための ELF プログラムヘッダテーブルを割り付けます。 Elf32_Phdr と Elf64_Phdr 記述子は、 elf(5) で、より詳しく説明されています。関数 elf32_newphdr() の elf64_newphdr() は、それぞれ count Elf32_Phdr と Elf64_Phdr 記述子のテーブルを割り付け、ELF 記述子 elf の既に存在する任意の既存のプログラムヘッダテーブルを破棄します。引数 count が 0 の値は、ELF 記述子から既存のプログラムヘッダテーブルを削除するために使用されます。
関数 gelf_newphdr() は、ELF 記述子 elf の ELF のクラスに依存している count 要素がある Elf32_Phdr または Elf64_Phdr のテーブルを返します。
関数は、プログラムヘッダテーブルに ELF_F_DIRTY フラグを設定します。 Phdr 構造体対の返された配列のすべてのメンバは、0 に初期化されます。
これらの関数への呼び出しが成功した後に、同じ記述子 elf で elf32_getphdr() または elf64_getphdr() への前の呼び出しによって返されたポインタは、もはや有効ではありません。
戻り値
関数は、成功すれば、有効なポインタを返し、エラーに遭遇した場合は、NULL を返します。エラー
これらの関数は、次のエラーで失敗するかもしれません:- [ ELF_E_ARGUMENT]
- 引数 elf は NULL でした。
- [ ELF_E_ARGUMENT]
- 引数 elf は ELF オブジェクトのための記述子ではありませんでした。
- [ ELF_E_CLASS]
- ELF 記述子 elf は認識されていないクラスのものでした。
- [ ELF_E_RESOURCE]
- メモリ不足の状態は検出されました。
- [ ELF_E_SEQUENCE]
- 実行形式のヘッダが、これらの API を使用する前に、ELF 記述子 elf のために割り付けられませんでした。
関連項目
elf(3), elf32_getphdr(3), elf32_newehdr(3), elf64_getphdr(3), elf64_newehdr(3), elf_flagphdr(3), elf_getphnum(3), gelf(3), gelf_getphdr(3), gelf_newehdr(3), elf(5)October 22, 2007 | FreeBSD |