Man page - end(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

END

名 前
書 式
説 明
準 拠
注 意

プ ロ グ ラ ム の ソ ー ス
関 連 項 目
こ の 文 書 に つ い て

名 前

etext, edata, end - プ ロ グ ラ ム セ グ メ ン ト の 終 わ り

書 式

extern etext ;
extern
edata ;
extern
end ;

説 明

こ れ ら の シ ン ボ ル の ア ド レ ス は 各 種 の プ ロ グ ラ ム セ グ メ ン ト の 終 わ り を 示 す 。

etext

テ キ ス ト セ グ メ ン ト (プ ロ グ ラ ム の コ ー ド ) の 末 尾 の 次 の ア ド レ ス 。

edata

初 期 化 さ れ た デ ー タ の セ グ メ ン ト の 末 尾 の 次 の ア ド レ ス 。

end

初 期 化 さ れ て い な い デ ー タ の セ グ メ ン ト (BSS セ グ メ ン ト と も 言 わ れ る ) の 末 尾 の 次 の ア ド レ ス 。

準 拠

こ れ ら の シ ン ボ ル は 長 年 ほ と ん ど の UNIX シ ス テ ム で 提 供 さ れ て い る が 、 標 準 化 さ れ て は い な い 。 注 意 し て 使 う こ と 。

注 意

プ ロ グ ラ ム で は こ れ ら の シ ン ボ ル は 明 示 的 に 宣 言 し な け れ ば な ら な い 。 こ れ ら は ど の ヘ ッ ダ ー フ ァ イ ル で も 定 義 さ れ て い な い 。

い く つ か の シ ス テ ム で は 、 こ れ ら の シ ン ボ ル の 名 前 は 前 に ア ン ダ ー ス コ ア が 付 い て い て 、 _etext , _edata , _end と な っ て い る 。 Linux で コ ン パ イ ル さ れ た プ ロ グ ラ ム で は 、 こ れ ら の シ ン ボ ル で も 定 義 さ れ る 。

プ ロ グ ラ ム の 実 行 開 始 時 に 、 プ ロ グ ラ ム ブ レ ー ク は &end の 近 く の ど こ か (お そ ら く 次 の ペ ー ジ の 先 頭 ) に な る 。 し か し な が ら 、 brk (2) や malloc (3) で メ モ リ ー が 割 り 当 て ら れ る に 連 れ て 、 プ ロ グ ラ ム ブ レ ー ク は 変 化 し て い く 。 引 数 に 0 を 指 定 し て sbrk (2) を 呼 び 出 す こ と で 、 プ ロ グ ラ ム ブ レ ー ク の 現 在 値 を 知 る こ と が で き る 。

下 記 の プ ロ グ ラ ム を 実 行 す る と 、 次 の よ う な 出 力 が 得 ら れ る 。

$ ./a.out
First address past:
program text (etext) 0x8048568
initialized data (edata) 0x804a01c
uninitialized data (end) 0x804a024

プ ロ グ ラ ム の ソ ー ス

#include <stdio.h>
#include <stdlib.h>

extern char etext, edata, end; /* The symbols must have some type,
or "gcc -Wall" complains */

int
main(int argc, char *argv[])
{
printf("First address past:\n");
printf(" program text (etext) %10p\n", &etext);
printf(" initialized data (edata) %10p\n", &edata);
printf(" uninitialized data (end) %10p\n", &end);

exit(EXIT_SUCCESS);
}

関 連 項 目

objdump (1), readelf (1), sbrk (2), elf (5)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。