源文件:
/*
* SpecialSymbol.c
*/
#include <stdio.h>
extern char __executable_start[];
extern char etext[], _etext[], __etext[];
extern char edata[], _edata[];
extern char end[], _end[];
int main()
{
printf("Executable Start t: %pn", __executable_start);
printf("Text End tt: %p, %p, %pn", etext, _etext, __etext);
printf("Data End tt: %p, %pn", edata, _edata);
printf("Executable End tt: %p, %pn", end, _end);
return 0;
}
编译:
gcc specialSymbol.c -o specialSymbol
运行:
crifan@ubuntu904:specialSymbol$ ./specialSymbol
Executable Start : 0x8048000
Text End : 0x8048518, 0x8048518, 0x8048518
Data End : 0x804a014, 0x804a014
Executable End : 0x804a01c, 0x804a01c
这些特殊符号,可以在源文件里面直接引用。
这些特殊符号和ld连接脚本有关。
转载请注明:在路上 » [学习过程记录]连接过程中的特殊符号