ELF_GETSCN(3) | FreeBSD Library Functions Manual | ELF_GETSCN(3) |
名称
elf_getscn, elf_ndxscn, elf_newscn, elf_nextscn — ELF オブジェクトのためのセクション情報を取得する/割り付けるライブラリ
ELF Access Library (libelf, -lelf)書式
#include < libelf.h> Elf_Scn *
elf_getscn( Elf *elf, size_t index);
size_t
elf_ndxscn( Elf_Scn *scn);
Elf_Scn *
elf_newscn( Elf *elf);
Elf_Scn *
elf_nextscn( Elf *elf, Elf_Scn *scn);
解説
これらの関数は、ELF 記述子に関連しているセクションを通して繰り返すために使用されます。関数 elf_getscn() は、ELF 記述子 elf によって示されたオブジェクトでインデックス index のセクションのためのセクション記述子を返します。指定されたセクションが存在しないなら、エラーシグナルが生成されます。
関数 elf_ndxscn() は、セクション記述子 scn に関連しているセクションテーブルインデックスを返します。
関数 elf_newscn() は、新しいセクションを作成して、記述子 elf に関連しているセクションのリストにそれを追加します。ライブラリは、記述子 elf に関連づけられた ELF ヘッダの e_shnum フィールドを自動的に増加して、返されたセクション記述子に ELF_F_DIRTY フラグを設定します。書き込みのためにオープンされた ELF 記述子に関して、ELF ライブラリは、 elf_newscn() への最初の呼び出しで、インデックス 0 ( SHN_UNDEF) に空のセクションを自動的に作成します。
関数 elf_nextscn() は、セクション記述子 scn を取り、次のより高いインデックスにおけるセクション記述子へのポインタを返します。引数 scn は、NULL であることが許可され、その場合、この関数は、インデックス 1 におけるセクション記述子へのポインタを返します。さらなるセクションが存在していないなら、関数 elf_nextscn() は、NULL ポインタを返します。
戻り値
関数 elf_getscn(), elf_newscn() と elf_nextscn() は、成功するなら、セクション記述子への有効なポインタを返し、エラーが生じたなら、NULL を返します。関数 elf_ndxscn() は、成功するなら、有効なセクションテーブルインデックスを返し、エラーが生じたなら、 SHN_UNDEF を返します。
エラー
これらの関数は、次のエラーで失敗するかもしれません:- [ ELF_E_ARGUMENT]
- 引数 elf または scn が NULL でした。
- [ ELF_E_ARGUMENT]
- 引数 index が、ELF オブジェクトのセクションの現在の番号を超えました。
- [ ELF_E_ARGUMENT]
- 引数 elf が、ELF ファイルのための記述子ではありませんでした。
- [ ELF_E_ARGUMENT]
- セクション記述子 scn が、ELF 記述子 elf に関連づけられませんでした。
- [ ELF_E_CLASS]
- 記述子 elf が未知の ELF のクラスのものでした。
- [ ELF_E_SECTION]
- インデックス SHN_UNDEF のセクションヘッダで ELF ヘッダの指定された引数 elf の拡張されたセクション番号付けは、タイプ SHT_NULL のものではありません。
October 22, 2007 | FreeBSD |