linux程序的段陆陆续续接触过一些,今天适当的总结一下,时间仓促,总结的比较零散。
linux 段:
text:已编译程序的机器代码。
.rodata:只读数据。printf中的格式串,或者开关语句的跳转表。
data:已初始化的全局变量。
bss:未初始化的全局变量。
symtab:符号表。
注意:
1、如果定义一个全局变量,int i = 0;它被初始化为0,但是,它却不是放在data段中的,而是放在bss段中的。因为编译器可能会做一些优化,如果初始化为0,则它会将它等同于未初始化的变量。这样的可能要求他会将所有未初始化的全局变量(bss段)初始化为0。——但是这个可能会和编译器有关系。
2、对于static全局变量,它在符号表中有一个属性表示他是local的,不是global。local的符号式不允许被其他的文件引用的。
3、static定义的局部变量,编译器会把它作为static全局变量来处理。它在符号表中是出现的(局部变量是不出现的)。唯一不同的是,它会把它在符号表中的名字改掉,一般会增加一个后缀:“.1788”。用这种方法来防止和其他的全局变量重名。而且也可以防止对它的调用。
4、段是有对齐的。如果定义一个char字符,会发现它有时会增加四个字节,之后定义,段大小便不再增加。
5、查看程序段的工具包括:readelf,objdump(加上-t可以查看变量属于哪个段),size(可以查看各个段的大小。)
基于linux程序中段的学习总结详解
2021-09-29 15:37Linux教程网 Linux
本篇文章是对linux程序中段的学习进行了详细的总结与分析,需要的朋友参考下
延伸 · 阅读
- 2021-09-29解决linux下大量TIME WAIT的方法详解
- 2021-09-29深入理解linux下查看进程内存的使用情况
- 2021-09-28面试官,您确定要让我展开讲进程吗?
- 2021-09-282021 年 Linux 基金会技术顾问委员会选举结果公布
- 2021-09-28linux中 关于screen 的命令详解
- 2021-09-28基于Linux下Nagios的安装与配置说明介绍[图]
- Linux
Linux系统下安装ccze小工具美化系统日志
这篇文章主要介绍了Linux系统下安装ccze小工具美化系统日志的方法,使其达到vim那样的配色显示效果,需要的朋友可以参考下...
- Linux
Linux木马pscan2查找与清除步骤
这篇文章主要介绍了Linux木马pscan2查找与清除步骤,需要的朋友可以参考下 ...
- Linux
用户操作系统Unix的前世今生
在 Kernighan 看来,今天的代码编写太难了,比起某个不知道多少层代码的文档中去找需要的函数,自己写程序逻辑这种创作的行为更加容易。Ken 的电子游戏...
- Linux
linux CentOS WEB服务器分区方案
这篇文章主要介绍了linux CentOS WEB服务器分区方案,需要的朋友可以参考下...
- Linux
Linux中如何修复“X11 forwarding request failed on channel 0”错误
当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败)的错误。 我为什...
- Linux
Linux/Unix操作系统目录结构的来历
举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还...
- Linux
Linux系统中什么是软链接什么是硬链接如何辨别
Linux系统中什么是软链接,什么是硬链接,下面为大家做个Linux系统的软链接和硬链接的比较,感兴趣的朋友可以看看 ...
- Linux
linux系统下将php和mysql命令加入到环境变量中的方法
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中 ...