Linux 数据段大小,单位为“;“尺寸”;Mac上的命令
假设Mac OS X 10.5上的“size”命令在一个小的可执行文件上有以下输出,uu DATA下的值是多少?是未初始化的数据段大小还是初始化的数据段大小?我发现令人困惑的是,无论我是否初始化(唯一的)程序中的全局数组,这个值(或其他值)似乎都没有改变 我猜这个命令在Linux和Mac上的工作方式不同吧Linux 数据段大小,单位为“;“尺寸”;Mac上的命令,linux,macos,size,osx-leopard,unix,Linux,Macos,Size,Osx Leopard,Unix,假设Mac OS X 10.5上的“size”命令在一个小的可执行文件上有以下输出,uu DATA下的值是多少?是未初始化的数据段大小还是初始化的数据段大小?我发现令人困惑的是,无论我是否初始化(唯一的)程序中的全局数组,这个值(或其他值)似乎都没有改变 我猜这个命令在Linux和Mac上的工作方式不同吧 __TEXT __DATA __OBJC others dec hex 4096 4096 0 4294971392 4294979584 100003000 在
__TEXT __DATA __OBJC others dec hex
4096 4096 0 4294971392 4294979584 100003000
在linux上,格式是
text data bss dec hex filename
1281 520 32 1833 729 a.out
BSS
是零初始化全局和局部静态的大小(以字节为单位)。我进行了验证,它们(数据、bss等)随着变量数量及其初始化值的变化而适当变化
需要注意的一点是,size
不带任何参数会在CWD中自动选择a.out
我完全不知道Mac里有什么东西。我猜是
\uu OBJC
=BSS
。还要检查如何调用size
命令所有静态和全局变量都已初始化,问题在于它们是初始化为零还是其他值。初始化为零的变量进入u数据段的u bss部分。其他变量将进入_数据段的其他部分。如果您将全局数组初始化为{0}
,它可能仍然存在于BSS中。尝试将其初始化为{1}
。小数点总大小为4294979584是什么意思?4GB?