.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
+.\"
+.\" 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 GNU "Linux Programmer's Manual"
.SH 名前
dl_iterate_phdr \- 共有オブジェクトのリストを辿る
\fB#include <link.h>\fP
\fBint dl_iterate_phdr(\fP
- \fBint (*\fPcallback\fB) (struct dl_phdr_info *\fPinfo\fB,\fP
- \fBsize_t\fP size\fB, void *\fPdata\fB),\fP
- \fBvoid *\fPdata\fB);\fP
+\fB int (*\fP\fIcallback\fP\fB) (struct dl_phdr_info *\fP\fIinfo\fP\fB,\fP
+\fB size_t \fP\fIsize\fP\fB, void *\fP\fIdata\fP\fB),\fP
+\fB void *\fP\fIdata\fP\fB);\fP
.fi
.SH 説明
\fBdl_iterate_phdr\fP() 関数を使うと、アプリケーションは実行時に どの共有オブジェクトをロードしたかを見つけることができる。
\fBdl_iterate_phdr\fP() 関数はアプリケーションの共有オブジェクトのリストを辿り、 各オブジェクトに対して関数 \fIcallback\fP
を 1 回ずつ呼び出す。 これは全ての共有オブジェクトが処理されるか、 \fIcallback\fP が 0 以外の値を返すまで行われる。
-各々の \fIcallback\fP 呼び出しは 3 つの引き数を受け取る: \fIinfo\fP は共有オブジェクトの情報を保持する構造体へのポインタである。
+å\90\84ã\80\85ã\81® \fIcallback\fP å\91¼ã\81³å\87ºã\81\97ã\81¯ 3 ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8b: \fIinfo\fP ã\81¯å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®æ\83\85å ±ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fIsize\fP は \fIinfo\fP で指される構造体のサイズである。 \fIdata\fP は呼び出し元プログラムから
\fBdl_iterate_phdr\fP() の呼び出しの (同じく \fIdata\fP という名前の) 第 2 引き数として渡される値のコピーである。
.nf
struct dl_phdr_info {
ElfW(Addr) dlpi_addr; /* オブジェクトのベースアドレス */
- const char *dlpi_name; /* (null 文字で終端された)
+ const char *dlpi_name; /* (ヌル文字で終端された)
オブジェクト名 */
const ElfW(Phdr) *dlpi_phdr; /* このオブジェクトの
- ELF プログラムヘッダの
- 配列へのポインタ */
+ ELF ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®
+ 配列へのポインター */
ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP のアイテム数 */
};
.fi
.in
-(\fIElfW\fP() マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ型の名前に変換する。 たとえば、32
-ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッダファイル
-\fI<elf.h>\fP と \fI<link.h>\fP にある。
+(\fIElfW\fP() ã\83\9eã\82¯ã\83å®\9a義ã\81¯å¼\95ã\81\8dæ\95°ã\82\92ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«é\81©ã\81\97ã\81\9f ELF ã\83\87ã\83¼ã\82¿å\9e\8bã\81®å\90\8då\89\8dã\81«å¤\89æ\8f\9bã\81\99ã\82\8bã\80\82 ã\81\9fã\81¨ã\81\88ã\81°ã\80\8132
+ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。
+これらの型についての更に詳細な情報は、ヘッダーファイル \fI<elf.h>\fP と \fI<link.h>\fP にある。
-\fIdlpi_addr\fP フィールドは共有オブジェクトのベースアドレス (つまり、共有オブジェクトの仮想メモリアドレスと、 ファイル
-(このファイルから共有オブジェクトがロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 \fIdlpi_name\fP は null
-文字で終端された文字列であり、 このパス名のファイルから共有オブジェクトがロードされる。
+\fIdlpi_addr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ (ã\81¤ã\81¾ã\82\8aã\80\81å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«
+(このファイルから共有オブジェクトがロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 \fIdlpi_name\fP
+はヌル文字で終端された文字列であり、 このパス名のファイルから共有オブジェクトがロードされる。
\fIdlpi_phdr\fP と \fIdlpi_phnum\fP フィールドの意味を理解するには、 ELF
-共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダ (そのセグメントを説明する)
-ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fIdlpi_phdr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\81\93ã\81®å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。
+共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダー (そのセグメントを説明する)
+ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fIdlpi_phdr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\81\93ã\81®å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
\fIdlpi_phnum\fP は、この配列のサイズを表す。
-これらのプログラムヘッダは以下のような形式の構造体である:
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81ªå½¢å¼\8fã\81®æ§\8bé\80 ä½\93ã\81§ã\81\82ã\82\8b:
.in +4n
.nf
Elf32_Addr p_vaddr; /* セグメントの仮想アドレス */
Elf32_Addr p_paddr; /* セグメントの物理アドレス */
Elf32_Word p_filesz; /* ファイルにおけるセグメントサイズ */
- Elf32_Word p_memsz; /* メモリにおけるセグメントサイズ */
+ Elf32_Word p_memsz; /* ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81\8aã\81\91ã\82\8bã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82µã\82¤ã\82º */
Elf32_Word p_flags; /* セグメントフラグ */
Elf32_Word p_align; /* セグメントの配置 (alignment) */
} Elf32_Phdr;
.fi
.in
-特定のプログラムヘッダ \fIx\fP の仮想メモリにおける位置は、以下の式で計算できる点に注意すること:
+特定のプログラムヘッダー \fIx\fP の仮想メモリーにおける位置は、以下の式で計算できる点に注意すること:
.nf
addr == info\->dlpi_addr + info\->dlpi_phdr[x].p_vaddr;
オンラインのいろいろな場所で入手できる \fIExecutable and Linking Format Specification\fP
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。