FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | ライブラリ | 書式 | 解説 | 関連項目 | 歴史 | 作者
ELF(3)                 FreeBSD ライブラリ関数マニュアル                 ELF(3)

名称
     elf -- ELF オブジェクトを操作する API

ライブラリ
     ELF 解析ライブラリ (libelf, -lelf)

書式
     #include <libelf.h>

解説
     ELF 解析ライブラリ (libelf, -lelf) は、アプリケーションが ELF オブジェク
     トファイルを読み込んで操作でき、ar(1) アーカイブを読み込むことができる関
     数群を提供しています。ライブラリによって、バイト順序とワードサイズ独立の
     方法で、ELF オブジェクトの操作ができ、アプリケーションは、32 と 64 ビット
     のアーキテクチャとリトルエンディアンとビッグエンディアンのマシンのための
     ELF オブジェクトを読み込んで、作成することができます。ライブラリは、拡張
     セクションの番号付けを使用する ELF オブジェクトを処理する能力があります。

     このマニュアルページは、ELF ライブラリの機能性の概要を提供するのに役立ち
     ます。ライブラリに含まれている個々の ELF(3) 関数のマニュアルページに、さ
     らなる詳細があります。

   ELF 概念
     elf(5) で説明されるように、ELF ファイルは、特有の方法でレイアウトされてい
     るいくつかのデータ構造を含んでいます。ELF ファイルは、``実行形式のヘッ
     ダ'' で始まり、省略可能な ``プログラムヘッダテーブル'' と省略可能な ELF
     ``セクション'' の形式のデータを含んでいます。``セクションヘッダテーブル''
     は、これらのセクションのデータの内容を説明しています。

     ELF オブジェクトには、オブジェクトに使われているアーキテクチャにに自然な
     マシンワードサイズを示す関連する ``ELF クラス'' があります。32 ビットの
     アーキテクチャのためのオブジェクトには、ELFCLASS32 の ELF のクラスがあり
     ます。64 ビットのアーキテクチャのためのオブジェクトには、ELFCLASS64 の
     ELF のクラスがあります。

     また、ELF オブジェクトには、オブジェクトに関連しているマシンアーキテク
     チャのエンディアンを示す関連する ``エンディアン'' があります。これは、リ
     トルエンディアンアーキテクチャのための ELFDATA2LSB とビッグエンディアン
     アーキテクチャのための ELFDATA2MSB です。

     また、ELF オブジェクトも API バージョン番号に関連しています。このバージョ
     ン番号は、ELF ファイルの個々の構成要素と、これらに関連しているセマンティ
     クスのレイアウトを決定しています。

   データ表現と変換
     ELF(3) ライブラリは、ELF データ構造の ``ネイティブ'' 表現とそれらの
     ``ファイル'' 表現を区別しています。

     アプリケーションは、``ネイティブ'' 表現の ELF データで動作します、すなわ
     ち、ネイティブのバイト順と、アプリケーションが実行しているプロセッサに
     よって強制された整列を使用します。同じデータの ``ファイル'' 表現は、異
     なったバイト順序を使用して、これらのネイティブの制約よりオブジェクト整列
     で異なった制約に従います。

     従って、ELF(3) ライブラリは、それらの表現から、またその表現への変換機能
     (elf32_xlatetof(3), elf32_xlatetom(3), elf64_xlatetof(3)elf64_xlatetom(3)) を提供し、明白な方法で ELF オブジェクトからデータを検
     索して、格納するより高いレベルの API も提供します。

   ライブラリ動作バージョン
     概念的に、ELF オブジェクトを操作するために ELF ライブラリを使用するアプリ
     ケーションに関連している 3 つのバージョン番号があります:
           •   アプリケーションがコンパイルされた ELF バージョン。このバージョ
               ンは、アプリケーションによって予想された ABI を決定します。
           •   ELF ライブラリを通してアプリケーションによって操作される ELF オ
               ブジェクトの ELF バージョン。
           •   ELF ライブラリ自体によってサポートされる ELF バージョン (また
               は、バージョンのセット)。

     異なるバージョンの ELF オブジェクトで容易に動作するために、ELF ライブラリ
     は、アプリケーションが必要とする動作するバージョンのライブラリに知らせる
     ために、操作の多くを呼び出す前に elf_version() 関数を呼び出すためのアプリ
     ケーションを必要とします。

     現在の実装では、すべての 3 つのバージョンは、EV_CURRENT でなければなりま
     せん。

   名前空間使用
     ELF ライブラリは、次の接頭辞を使用します:

     elf_     クラス独立の関数に使用されます。

     elf32_   32 ビットの ELF オブジェクトで動作する関数に使用されます。

     elf64_   64 ビットの ELF オブジェクトで動作する関数に使用されます。

     Elf_     クラス独立のデータタイプに使用されます。

     ELF_C_   いくつかの関数で使用されるコマンド値に使用されます。これらのシン
              ボルは、Elf_Cmd 列挙型のメンバとして定義されます。

     ELF_E_   エラー番号に使用されます。

     ELF_F_   フラグに使用されます。

     ELF_K_   これらの定数は、ELF 記述子に関連しているファイルの種類を定義しま
              す。elf_kind(3) を参照してください。シンボルは、Elf_Kind 列挙型
              で定義されます。

     ELF_T_   これらの値は、Elf_Type 列挙型で定義されて、ELF オブジェクトに存
              在する ELF データ構造のタイプを示します。

     さらに、ライブラリは、内部の使用のために接頭辞 _ELF と _libelf を付けてシ
     ンボルを使用します。

   記述子
     アプリケーションは、記述子を使用してライブラリと交信します。これらは、次
     の通りです:

     Elf       Elf 記述子は、ELF オブジェクト、または ar(1) アーカイブを表しま
               す。elf_begin() または elf_memory() 関数の 1 つを使用してそれを
               割り付けます。ELF ファイルにデータを読み込み書き込みするために
               Elf 記述子を使用することができます。0 以上の Elf_Scn セクション
               記述子に Elf 記述子を関連づけることができます。

               ELF 記述子を与えて、アプリケーションは、elf32_getehdr() または
               elf64_getehdr() 関数を使用して、ELF オブジェクトのクラスに依存
               する ``実行形式ヘッダ'' 構造を検索することができます。
               elf64_newehdr() または elf64_newehdr() 関数を使用して、新しい
               Ehdr 構造を割り付けることができます。

               elf32_getphdr() または elf64_getphdr() 関数を使用して、ELF 記述
               子に関連している ``プログラムヘッダテーブル'' を割り付けること
               ができます。新プログラムヘッダテーブルを割り付けるか、または
               elf32_newphdr() または、elf64_newphdr() 関数を使用して既存の
               テーブルをリサイズします。

               Elf 構造は、不透明 (サイズおよび形がわからないもの) であり、ア
               プリケーションに見えるメンバはありません。

     Elf_Data  Elf_Data データ構造は、メモリで表現されるような ELF ファイルの
               個々の塊について記述しています。それには、次のアプリケーション
               に見えるメンバがあります:
               uint64_t d_align        ELF セクション内に含まれるデータバッ
                                       ファの in-file の整列。この値は、0 でな
                                       い、2 の冪乗なければなりません。
               void *d_buf             メモリのデータへのポインタ。
               uint64_t d_off          この記述子のデータが置かれるセクション
                                       内に含んでいるオフセット。このフィール
                                       ドは、アプリケーションが ELF オブジェク
                                       トのレイアウトの完全な制御を要求しない
                                       なら、ライブラリによって計算されます。
               uint64_t d_size         この記述子のデータのバイト数。
               Elf_Type d_type         この記述子のデータの ELF タイプ (下記参
                                       照)。
               unsigned int d_version  このバッファ中のデータの操作バージョ
                                       ン。

               Elf_Data 記述子は、通常 Elf_Scn 記述子に関連しています。ELF セ
               クションに関連している既存のデータ記述子は、elf_getdata() と
               elf_rawdata() 関数を使用して検索される構造です。elf_newdata()
               関数は、新しいデータ記述子を ELF セクションにアタッチするために
               使用されます。

     Elf_Scn   Elf_Scn 記述子は、ELF オブジェクトのセクションを表します。

               それらは、elf_getscn() 関数を使用して検索されます。アプリケー
               ションは、elf_nextscn() 関数を使用して既存の ELF オブジェクトの
               セクションを繰り返します。新しいセクションは、elf_newscn() 関数
               を使用して割り付けられます。

               Elf_Scn 記述子は、不透明であり、アプリケーションの修正できる
               フィールドを含んでいません。

   サポートしている Elf タイプ
     次の ELF データタイプが、ライブラリによってサポートされています。

     ELF_T_ADDR     マシンアドレス。
     ELF_T_BYTE     バイトデータ。ライブラリは、バイトデータを変換する試みを行
                    いません。
     ELF_T_CAP      ソフトウェアとハードウェアのケーパビリティレコード。
     ELF_T_DYN      タイプ SHT_DYNAMIC のセクションで使用されるレコード。
     ELF_T_EHDR     ELF 実行形式のヘッダ。
     ELF_T_GNUHASH  GNU スタイルのハッシュテーブル。
     ELF_T_HALF     16 ビット符号なしワード。
     ELF_T_LWORD    64 ビット符号なしワード。
     ELF_T_MOVE     ELF 移動レコード。
     ELF_T_NOTE     ELF ノート構造体。
     ELF_T_OFF      ファイルオフセット。
     ELF_T_PHDR     ELF プログラムヘッダテーブルエントリ。
     ELF_T_REL      ELF リロケーデョンエントリ。
     ELF_T_RELA     加数がある ELF リロケーデョンエントリ。
     ELF_T_SHDR     ELF セクションヘッダエントリ。
     ELF_T_SWORD    符号付き 32 ビットワード。
     ELF_T_SXWORD   符号付き 64 ビットワード。
     ELF_T_SYMINFO  ELF シンボル情報。
     ELF_T_SYM      ELF シンボルテーブルエントリ。
     ELF_T_VDEF     シンボルバージョン定義レコード。
     ELF_T_VNEED    シンボルバージョン要件レコード。
     ELF_T_WORD     符号なし 32 ビットワード。
     ELF_T_XWORD    符号なし 64 ビットワード。

     シンボル ELF_T_NUM は、ライブラリで知られている Elf タイプの数を示しま
     す。

     次のテーブルは、elf(5) で定義された ELF セクションタイプとライブラリに
     よってサポートされているタイプの間のマッピングを示します。

     セクションタイプ     ライブラリタイプ 説明
     SHT_DYNAMIC          ELF_T_DYN        `.dynamic' セクションエントリ。
     SHT_DYNSYM           ELF_T_SYM        ダイナミックリンクのシンボル。
     SHT_FINI_ARRAY       ELF_T_ADDR       終了関数ポインタ。
     SHT_GNU_HASH         ELF_T_GNUHASH    GNU ハッシュセクション。
     SHT_GNU_LIBLIST      ELF_T_WORD       前もってリンクされたライブラリのリ
                                           スト。
     SHT_GNU_verdef       ELF_T_VDEF       シンボルバージョンの定義。
     SHT_GNU_verneed      ELF_T_VNEED      シンボルバージョニングの要件。
     SHT_GNU_versym       ELF_T_HALF       バージョンシンボル。
     SHT_GROUP            ELF_T_WORD       セクショングループのマーカ。
     SHT_HASH             ELF_T_HASH       シンボルハッシュ。
     SHT_INIT_ARRAY       ELF_T_ADDR       初期関数ポインタ。
     SHT_NOBITS           ELF_T_BYTE       空セクション。elf(5) 参照。
     SHT_NOTE             ELF_T_NOTE       ELF ノートレコード。
     SHT_PREINIT_ARRAY    ELF_T_ADDR       前もって初期化された関数ポインタ。
     SHT_PROGBITS         ELF_T_BYTE       マシンコード。
     SHT_REL              ELF_T_REL        ELF リロケーションレコード。
     SHT_RELA             ELF_T_RELA       加数があるリロケーションレコード。
     SHT_STRTAB           ELF_T_BYTE       文字列テーブル。
     SHT_SYMTAB           ELF_T_SYM        シンボルテーブル。
     SHT_SYMTAB_SHNDX     ELF_T_WORD       拡張セクション番号付けを使用しま
                                           す。
     SHT_SUNW_dof         ELF_T_BYTE       dtrace(1) によって使用されます。
     SHT_SUNW_move        ELF_T_MOVE       ELF 移動レコード。
     SHT_SUNW_syminfo     ELF_T_SYMINFO    追加シンボルフラグ。
     SHT_SUNW_verdef      ELF_T_VDEF       SHT_GNU_verdef と同様です。
     SHT_SUNW_verneed     ELF_T_VNEED      SHT_GNU_verneed と同様です。
     SHT_SUNW_versym      ELF_T_HALF       SHT_GNU_versym と同様です。

     そうでなければ、範囲 [SHT_LOOS, SHT_HIUSER] のセクションタイプは、タイプ
     ELF_T_BYTE であると見なされます。

   機能的なグループ分け
     このセクションは、ELF ライブラリの利用可能な機能の簡潔な概要を含んでしま
     す。ここにリストされた各関数は、それ自体のマニュアルページにより詳しく説
     明されています。

     アーカイブのアクセス
             elf_getarsym()    アーカイブされたシンボルテーブルを検索します。
             elf_getarhdr()    オブジェクトのためのアーカイブヘッダを検索しま
                               す。
             elf_getbase()     アーカイブ内のメンバのオフセットを検索します。
             elf_next()        ar(1) アーカイブを通して繰り返します。
             elf_rand()        ar(1) アーカイブ内をランダムにアクセスします。

     データ構造
             elf_getdata()     ELF セクションのために変換されたデータを検索し
                               ます。
             elf_getscn()      指定されたセクションのセクション記述子を検索し
                               ます。
             elf_ndxscn()      セクションのインデックスを検索します。
             elf_newdata()     新しい Elf_Data 記述子を ELF セクションに追加し
                               ます。
             elf_newscn()      新しいセクション記述子を ELF 記述子に追加しま
                               す。
             elf_nextscn()     ELF オブジェクトのセクションを通して繰り返しま
                               す。
             elf_rawdata()     ELF セクションのための変換されないデータを検索
                               します。
             elf_rawfile()     ELF オブジェクトの変換されないファイルの内容へ
                               のポインタを返します。
             elf32_getehdr(), elf64_getehdr()
                               ELF オブジェクトの実行形式ヘッダを検索します。
             elf32_getphdr(), elf64_getphdr()
                               ELF オブジェクトのプログラムヘッダテーブルを検
                               索します。
             elf32_getshdr(), elf64_getshdr()
                               Elf_Scn 記述子に関連している ELF セクションヘッ
                               ダを検索します。
             elf32_newehdr(), elf64_newehdr()
                               ELF オブジェクトの実行形式ヘッダを割り付けま
                               す。
             elf32_newphdr(), elf64_newphdr()
                               ELF オブジェクトのプログラムヘッダテーブルを割
                               り付けるか、またはリサイズ (サイズ変更) しま
                               す。

     データ変換
             elf32_xlatetof(), elf64_xlatetof()
                               ELF データ構造をネイティブ表現からファイル表現
                               に変換します。
             elf32_xlatetom(), elf64_xlatetom()
                               ELF データ構造をファイル表現からネイティブ表現
                               に変換します。

     エラー報告
             elf_errno()       現在のエラーを検索します。
             elf_errmsg()      現在のエラーの人間に読み込み可能な記述を検索し
                               ます。

     初期設定
             elf_begin()       ar(1) アーカイブまたは ELF オブジェクトを与えら
                               れたファイル記述子でオープンします。
             elf_end()         ELF 記述子をクローズして、すべてのリソースを解
                               放します。
             elf_memory()      メモリ領域に存在する ar(1) アーカイブまたは ELF
                               オブジェクトをオープンします。
             elf_version()     操作バージョンを設定します。

     IO 制御
             elf_cntl()         ELF 記述子とその基本的なファイルの間の関連性を
                                管理します。
             elf_flagdata()     Elf_Data 記述子がダーティ (汚い) とマークしま
                                す。
             elf_flagehdr()     ELF 記述子の ELF 実行形式ヘッダがダーティ (汚
                                い) とマークします。
             elf_flagphdr()     ELF 記述子の ELF プログラムヘッダテーブルが
                                ダーティ (汚い) とマークします。
             elf_flagscn()      Elf_Scn 記述子がダーティ (汚い) とマークしま
                                す。
             elf_flagshdr()     ELF セクションヘッダがダーティ (汚い) とマーク
                                します。
             elf_setshstrndx()  ELF オブジェクトのセクション名文字列テーブルの
                                インデックスを設定します。
             elf_update()       ELF オブジェクトのレイアウトを再計算し、オプ
                                ションで、変更されたオブジェクトを基本的なファ
                                イルに書き戻します。

     問い合わせ
             elf32_checksum(), elf64_checkum()
                                ELF オブジェクトのチェックサムを計算します。
             elf_getident()     ELF オブジェクトの識別バイトを検索します。
             elf_getshnum()     ELF オブジェクトのセクションの数を検索します。
             elf_getshstrndx()  ELF オブジェクトのセクション名文字列テーブルの
                                セクションインデックスを検索します。
             elf_hash()         文字列の ELF ハッシュ値を計算します。
             elf_kind()         ELF 記述子に関連しているオブジェクトの種類を問
                                い合わせます。
             elf32_fsize(), elf64_fsize()
                                ELF タイプのファイル表現のサイズを返します。

   ELF オブジェクトレイアウトの制御
     操作の通常モードで、ライブラリは、セクションのオフセットを計算し、アプリ
     ケーションによってさらなる調整の必要性なしで ELF 記述子のセクションの内容
     に基づいて整列します。

     しかしながら、アプリケーションが ELF ファイルのレイアウトの完全な管理を引
     き受けるなら、elf_flagelf(3) を使用して ELF 記述子に ELF_F_LAYOUT フラグ
     を設定し、続いて、ライブラリが、ファイルをレイアウトするとき、アプリケー
     ションによって指定されたデータオフセットと整列を使用します。ファイルレイ
     アウトのアプリケーション制御は、elf_update(3) マニュアルページに、より詳
     しく説明されています。

     セクション間のギャップは、関数 elf_fill() によって設定された fill (充填)
     文字で満たされます。

   エラー処理
     エラーに遭遇する場合に、これらのライブラリ関数は、内部のエラー番号を設定
     して、特別なリターン値を返すことによって、エラーの存在を示します。アプリ
     ケーションは、elf_errno(3) を呼び出すことによって、現在のエラー番号を
     チェックすることができます。記録されたエラーの人間に読み込み可能な記述
     は、elf_errmsg(3) を呼び出すことによって、利用可能です。

   メモリ管理規則
     ライブラリは、ELF 記述子に関連しているすべての Elf_ScnElf_Data 記述子
     の経過を追い、記述子が elf_end(3) を使用してクローズされるとき、それらを
     復元します。したがって、アプリケーションは、ELF ライブラリによって割り付
     けられたデータ構造で free(3) を呼び出してはなりません。

     反対に、ライブラリは、割り付けられていないデータを解放しません。例とし
     て、アプリケーションは、新しい Elf_Data 記述子を割り付けるために
     elf_newdata(3) を呼び出し、malloc(3) を使用して割り付けられたメモリの領域
     を指すように記述子の d_off メンバを設定することができます。この領域を解放
     することは、アプリケーション責任ですが、ライブラリは、Elf_Data 記述子自体
     によって使用される空間を取り戻します。

関連項目
     gelf(3), elf(5)

歴史
     オリジナルの ELF(3) API は、Unix System V のために開発されました。ELF(3)
     API の現在の実装は、FreeBSD 7.0 で登場しました。

作者
     ELF ライブラリは、Joseph Koshy <jkoshy@FreeBSD.org> によって書かれまし
     た。

FreeBSD 11.2                     July 28, 2014                    FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索