.\" the source, must acknowledge the copyright and authors of this work.
.\" License.
.\"
-.\" Japanese Version Copyright (c) 2005 Yuichi SATO
-.\" all rights reserved.
-.\" Translated Thu Jan 27 07:03:56 JST 2005
-.\" by Yuichi SATO <ysato444@yahoo.co.jp>
+.\"*******************************************************************
.\"
-.TH DL_ITERATE_PHDR 3 2007-05-18 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH DL_ITERATE_PHDR 3 2007\-05\-18 GNU "Linux Programmer's Manual"
.SH 名前
dl_iterate_phdr \- 共有オブジェクトのリストを辿る
.SH 書式
.nf
-.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */"
-.B #include <link.h>
+\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
+\fB#include <link.h>\fP
\fBint dl_iterate_phdr(\fP
- \fBint (*\fPcallback\fB) \
-(struct dl_phdr_info *\fPinfo\fB,\fP
+ \fBint (*\fPcallback\fB) (struct dl_phdr_info *\fPinfo\fB,\fP
\fBsize_t\fP size\fB, void *\fPdata\fB),\fP
\fBvoid *\fPdata\fB);\fP
.fi
.SH 説明
-.BR dl_iterate_phdr ()
-関数を使うと、アプリケーションは実行時に
-どの共有オブジェクトをロードしたかを見つけることができる。
-
-.BR dl_iterate_phdr ()
-関数はアプリケーションの共有オブジェクトのリストを辿り、
-各オブジェクトに対して関数
-.I callback
-を 1 回ずつ呼び出す。
-これは全ての共有オブジェクトが処理されるか、
-.I callback
-が 0 以外の値を返すまで行われる。
-
-各々の
-.I callback
-呼び出しは 3 つの引き数を受け取る:
-.I info
-は共有オブジェクトの情報を保持する構造体へのポインタである。
-.I size
-は
-.I info
-で指される構造体のサイズである。
-.I data
-は呼び出し元プログラムから
-.BR dl_iterate_phdr ()
-の呼び出しの (同じく
-.I data
-という名前の) 第 2 引き数として渡される値のコピーである。
-
-.I info
-引き数は、以下のような型の構造体である。
+\fBdl_iterate_phdr\fP() 関数を使うと、アプリケーションは実行時に どの共有オブジェクトをロードしたかを見つけることができる。
+
+\fBdl_iterate_phdr\fP() 関数はアプリケーションの共有オブジェクトのリストを辿り、 各オブジェクトに対して関数 \fIcallback\fP
+を 1 回ずつ呼び出す。 これは全ての共有オブジェクトが処理されるか、 \fIcallback\fP が 0 以外の値を返すまで行われる。
+
+各々の \fIcallback\fP 呼び出しは 3 つの引き数を受け取る: \fIinfo\fP は共有オブジェクトの情報を保持する構造体へのポインタである。
+\fIsize\fP は \fIinfo\fP で指される構造体のサイズである。 \fIdata\fP は呼び出し元プログラムから
+\fBdl_iterate_phdr\fP() の呼び出しの (同じく \fIdata\fP という名前の) 第 2 引き数として渡される値のコピーである。
+
+\fIinfo\fP 引き数は、以下のような型の構造体である。
.in +4n
.nf
.fi
.in
-.RI ( ElfW ()
-マクロ定義は引き数をハードウェアアーキテクチャに適した
-ELF データ型の名前に変換する。
-たとえば、32 ビットプラットフォームでは
-ElfW(Addr) はデータ型名 Elf32_Addr を生成する。
-これらの型についての更に詳細な情報は、ヘッダファイル
-.IR <elf.h> " と " <link.h>
-にある。
-
-.I dlpi_addr
-フィールドは共有オブジェクトのベースアドレス
-(つまり、共有オブジェクトの仮想メモリアドレスと、
-ファイル (このファイルから共有オブジェクトがロードされる) における
-共有オブジェクトのオフセットとの差分) を表す。
-.I dlpi_name
-は null 文字で終端された文字列であり、
-このパス名のファイルから共有オブジェクトがロードされる。
-
-.I dlpi_phdr
-と
-.I dlpi_phnum
-フィールドの意味を理解するには、
-ELF 共有オブジェクトが幾つかのセグメントから構成されていることと、
-各セグメントがそれに対応するプログラムヘッダ
-(そのセグメントを説明する) を持っていることを知っている必要がある。
-.I dlpi_phdr
-フィールドは、この共有オブジェクトのプログラムヘッダの配列へのポインタである。
-.I dlpi_phnum
-は、この配列のサイズを表す。
+(\fIElfW\fP() マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ型の名前に変換する。 たとえば、32
+ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッダファイル
+\fI<elf.h>\fP と \fI<link.h>\fP にある。
+
+\fIdlpi_addr\fP フィールドは共有オブジェクトのベースアドレス (つまり、共有オブジェクトの仮想メモリアドレスと、 ファイル
+(このファイルから共有オブジェクトがロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 \fIdlpi_name\fP は null
+文字で終端された文字列であり、 このパス名のファイルから共有オブジェクトがロードされる。
+
+\fIdlpi_phdr\fP と \fIdlpi_phnum\fP フィールドの意味を理解するには、 ELF
+共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダ (そのセグメントを説明する)
+を持っていることを知っている必要がある。 \fIdlpi_phdr\fP フィールドは、この共有オブジェクトのプログラムヘッダの配列へのポインタである。
+\fIdlpi_phnum\fP は、この配列のサイズを表す。
これらのプログラムヘッダは以下のような形式の構造体である:
.in +4n
.fi
.in
-特定のプログラムヘッダ
-.I x
-の仮想メモリにおける位置は、以下の式で計算できる点に注意すること:
+特定のプログラムヘッダ \fIx\fP の仮想メモリにおける位置は、以下の式で計算できる点に注意すること:
.nf
addr == info\->dlpi_addr + info\->dlpi_phdr[x].p_vaddr;
.fi
.SH 返り値
-.BR dl_iterate_phdr ()
-関数は最後の
-.I callback
-の呼び出しで返された値を返す。
+\fBdl_iterate_phdr\fP() 関数は最後の \fIcallback\fP の呼び出しで返された値を返す。
.SH バージョン
-.BR dl_iterate_phdr ()
-は glibc のバージョン 2.2.4 以降でサポートされている。
+\fBdl_iterate_phdr\fP() は glibc のバージョン 2.2.4 以降でサポートされている。
.SH 準拠
-.BR dl_iterate_phdr ()
-関数は Linux 固有であり、移植を考えたアプリケーションでは避けるべきである。
+\fBdl_iterate_phdr\fP() 関数は Linux 固有であり、移植を考えたアプリケーションでは避けるべきである。
.SH 例
-以下のプログラムは、共有オブジェクトがロードされた
-パス名の一覧を表示する。
-各共有オブジェクトについて、このプログラムは
-オブジェクトの ELF セグメントがロードされた
-仮想アドレスの一覧を表示する。
+以下のプログラムは、共有オブジェクトがロードされた パス名の一覧を表示する。 各共有オブジェクトについて、このプログラムは オブジェクトの ELF
+セグメントがロードされた 仮想アドレスの一覧を表示する。
.nf
#define _GNU_SOURCE
{
int j;
- printf("name=%s (%d segments)\\n", info\->dlpi_name,
+ printf("name=%s (%d segments)\en", info\->dlpi_name,
info\->dlpi_phnum);
for (j = 0; j < info\->dlpi_phnum; j++)
- printf("\\t\\t header %2d: address=%10p\\n", j,
+ printf("\et\et header %2d: address=%10p\en", j,
(void *) (info\->dlpi_addr + info\->dlpi_phdr[j].p_vaddr));
return 0;
}
}
.fi
.SH 関連項目
-.BR ldd (1),
-.BR objdump (1),
-.BR readelf (1),
-.BR dlopen (3),
-.BR elf (5),
-.BR ld.so (8),
-オンラインのいろいろな場所で入手できる
-.I "Executable and Linking Format Specification"
+\fBldd\fP(1), \fBobjdump\fP(1), \fBreadelf\fP(1), \fBdlopen\fP(3), \fBelf\fP(5),
+\fBld.so\fP(8), オンラインのいろいろな場所で入手できる \fIExecutable and Linking Format
+Specification\fP