Linux 终端命令size 用法

size 作用:显示一个目标文件或者链接库文件中的目标文件的各个段的大小(可执行文件段的大小,默认为a.out)

支持的目标: elf32-i386 a.out-i386-linux efi-app-ia32 elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core。

命令使用格式

size [ option ... ] [ object ... ]

[root@localhost lib]# size /usr/lib/libOpenIPMIposix.so.0.0.1
text data bss dec hex filename
13123 616 4 13743 35af /usr/lib/libOpenIPMIposix.so.0.0.1
[root@localhost lib]#

其中 text表示正文段大小,data表示包含静态变量和已经初始化(可执行文件包含了初始化的值)的全局变量的数据段大小,bss由可执行文件中不含其初始化值的全局变量组成。

===================================================================================


BSS 段: BSS 段(bss segment )通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS 是英文Block Started by Symbol 的简称。BSS 段属于静态内存分配。 

数据段: 数据段(data segment )通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。 

代码段: 代码段(code segment/text segment )通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。 

堆(heap ): 堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc 等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free 等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减) 

栈(stack) :栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{} ”中定义的变量(但不包括static 声明的变量,static 意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/ 恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux下的size命令可以用于查看可执行文件、目标文件和共享库等二进制文件的大小,同时还可显示文件中各个段的大小信息。 size命令的使用格式如下: ``` size [选项] 文件名 ``` 常用选项包括: - -B:指定以字节为单位显示大小信息; - -t:按照段(section)的大小来显示信息; - -A:显示所有符号信息,包括未使用的符号等; - -G:显示全局变量的大小信息。 例如,要查看可执行文件test的大小信息,可以使用以下命令: ``` size test ``` 输出结果中,第一列为各个段的大小信息,第二列为段的名称,最后一列为文件名。 ### 回答2: size命令是用于查看目标文件或目标文件中函数和数据对象的大小的Linux命令。 这个命令用法非常简单,只需要在命令后面跟上目标文件的路径即可。当然,也可以同时指定多个目标文件,用空格分隔开即可。 size命令的输出结果通常会展示三个值,分别是text段(代码段)的大小、data段(数据段)的大小和bss段(未初始化数据段)的大小。这些值通常以十进制表示,但也可以通过size的选项进行控制。 通过size命令,我们可以了解目标文件的大小情况,这对于优化和调试程序非常有用。通过分析text段的大小,我们可以了解程序的代码长度,如果代码过长,可能需要进行一些优化措施以提高程序的执行效率。同样,通过分析data段和bss段的大小,我们可以了解目标文件中使用的全局变量和静态变量的大小情况,这对于程序的内存使用情况也非常有帮助。 总之,size命令是一个简单实用的Linux命令,可以帮助我们了解目标文件或可执行文件的大小情况,从而进行代码优化和程序调试。 ### 回答3: Size命令是一个用于统计目标文件或目录大小的Linux命令。它可以用来查看文件或目录占用的磁盘空间大小。 Size命令可以在终端中使用,语法如下: size [选项] [目标文件] 其中,选项可以是以下几种: - -A 或 --format=SysV: 以SysV格式显示文件大小。 - -B 或 --format=Berkeley: 以Berkeley格式显示文件大小。 - -H 或 --format=GNU: 以GNU format显示文件大小。 - -L 或 --format=SysV: 以SysV格式显示文件大小。 - -d 或 --decimal: 以十进制显示文件大小。 - -s 或 --total: 显示所有目标文件的总大小。 若不指定任何目标文件,则Size命令会显示当前目录下所有文件的大小。 Size命令会输出三个值:text、data和bss。这三个值分别表示可执行文件的代码段大小、数据段大小和空的BSS段(即在程序中声明但未进行初始化的全局变量占用的空间)大小。 除此之外,Size命令还会显示文件的总大小。有时候,我们需要查看某个文件夹下所有文件的总大小,可以使用Size命令的选项-s或--total。 总的来说,Size命令对于查看文件或目录大小是非常有用的。它可以帮助我们了解文件或目录占用的磁盘空间,方便我们进行存储管理和资源分配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值