遵循规范
尽管大多数UNIX系统上早已提供了这些符号,但它们尚未标准化。谨慎使用。
示例
运行时,以下程序将产生如下输出:
$ ./a.out
First address past:
program text (etext) 0x8048568
initialized data (edata) 0x804a01c
uninitialized data (end) 0x804a024
Program source
#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);
}
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。
Linux程序员手册 第3部分
更新日期: 2020-06-09
语法
extern etext; extern edata; extern end;
名称
etext,edata,end-程序段的末尾
说明
这些符号的地址表示各个程序段的结尾:
- etext
- 这是文本段(程序代码)末尾的第一个地址。
- edata
- 这是初始化数据段末尾之后的第一个地址。
- end
- 这是未初始化数据段(也称为BSS段)末尾的第一个地址。
日期:2019-08-20 18:00:09 来源:oir作者:oir
