linux中size的问题

luosimuer 2011-09-15 11:04:14
我编写了一个简单的C程序 想要用size查看代码段等信息

程序如下:
#include <stdio.h>

int main()
{
printf("hello\n");

return 0;
}

之后我用gcc编译生成hello这个可执行文件

ll hello显示:
-rwxr-xr-x 1 linux linux 6402 test 22:00 hello

size hello显示:
text data bss dec hex filename
837 268 4 1109 455 hello

我不明白size hello显示的这些数值的具体意义,这些数字都代表什么?请高手帮我解答一下,谢谢!!!
...全文
261 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
man readelf

---------

The size returned from ls is probably the size of the file on the file system instead of the actually size of the file. That's why the numbers you got vary from one OS to another.
  • 打赏
  • 举报
回复
try readelf -a hello
Athenacle_ 2011-09-16
  • 打赏
  • 举报
回复
837+268+4=1109=0x455

yel617 2011-09-16
  • 打赏
  • 举报
回复
过来学习
luosimuer 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 micropentium6 的回复:]

try readelf -a hello
[/Quote]

使用readelf -a hello我得到了很多信息 但是看不懂 而且信息太多了
应该怎么分析呢?请给我解答一下 谢谢!
luosimuer 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 athenacle_ 的回复:]

837+268+4=1109=0x455
[/Quote]

恩 这个我知道 但是size得到的1109和ll得到的6402不同 是不是因为我没有strip 里面有符号链接之类的东西 所以ll得到的数值要比size得到的数值大很多呢?另外就是我的程序中没有未初始化的全局变量或者静态变量 为什么得到的bss的数值是4呢?

还有就是我得到ll和size的值都是在ubuntu 8.04系统上得到的:
{
ll hello显示:
-rwxr-xr-x 1 linux linux 6402 test 22:00 hello
size hello显示:
text data bss dec hex filename
837 268 4 1109 455 hello
}
同样的程序原封不动的放到fedora 13上运行得到的值都不一样,如下:
{
ll hello显示:
-rwxrwxr-x 1 user user 4683 01:02 hello
size hello显示:
text data bss dec hex filename
1029 252 8 1289 509 hello
}
这是不是和不同的操作系统有关系呢?我用的都是虚拟机

这次问题有些多 我弄了一晚上也没有完全弄明白 所以还请帮我解答 谢谢!!!
luosimuer 2011-09-15
  • 打赏
  • 举报
回复
另外,我查了一下:
text表示正文段大小,data表示包含静态变量和已经初始化(可执行文件包含了初始化的值)的全局变量的数据段大小,bss由可执行文件中不含其初始化值的全局变量组成。

意义是明白了 但是如何和我size hello得到的结果对应起来呢?为什么我size hello之后得到的值是:
text data bss dec hex filename
837 268 4 1109 455 hello
luosimuer 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 athenacle_ 的回复:]

请看C专家编程。
[/Quote]

另外就是ll hello得到的6402和size hello中得到的1109有什么关系呢?不都是hello的大小吗?
我是菜鸟 请帮我详细解答一下吧 谢谢!
Athenacle_ 2011-09-15
  • 打赏
  • 举报
回复
请看C专家编程。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧