可能重复:
.bss section in elf file
您好,
BSS(Block started by symbol)
是程序文件(a.out)的一部分。假设我的c程序中声明了一个全局变量char buf[2048]
。我从我的c程序(a.out
)中创建了一个可执行文件。 buf
的2048字节是否属于a.out
的一部分?或者buf
仅在执行程序文件期间分配所需的内存量?
当size命令显示为文本段,初始化数据段和可执行文件的BSS(a.out)分配的内存时,我感到困惑
答案 0 :(得分:4)
不,2048字节实际上不占用文件'a.out'中的任何空间,假设您有一个现代Linux操作系统,其中文件'a.out'的格式实际上是ELF,而不是格式以“a.out”命名,以前就是这种情况。有关ELF格式的更多信息,请参阅http://en.wikipedia.org/wiki/Executable_and_Linkable_Format。