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

名称

elf32_newphdr, elf64_newphdr, gelf_newphdrELF プログラムヘッダテーブルを割り付ける

ライブラリ

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_PhdrElf64_Phdr 記述子は、 elf(5) で、より詳しく説明されています。

関数 elf32_newphdr() の elf64_newphdr() は、それぞれ count Elf32_PhdrElf64_Phdr 記述子のテーブルを割り付け、ELF 記述子 elf の既に存在する任意の既存のプログラムヘッダテーブルを破棄します。引数 count が 0 の値は、ELF 記述子から既存のプログラムヘッダテーブルを削除するために使用されます。

関数 gelf_newphdr() は、ELF 記述子 elf の ELF のクラスに依存している count 要素がある Elf32_Phdr または Elf64_Phdr のテーブルを返します。

関数は、プログラムヘッダテーブルに ELF_F_DIRTY フラグを設定します。 Phdr 構造体対の返された配列のすべてのメンバは、0 に初期化されます。

これらの関数への呼び出しが成功した後に、同じ記述子 elfelf32_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 のために割り付けられませんでした。
October 22, 2007 FreeBSD