第一范文网 - 专业文章范例文档资料分享平台

linux常用头文件详解(11)

来源:用户分享 时间:2021-04-05 本文由水漾月微醺 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

linux常用头文件详解

3)r_pcrel——如果设置了该位,链接程序就认为正在更新一个指针,该指针使用pc相关寻址方式,是属于机器码指令部分。当运行程序使用这个被重定位的指针时,该指针的地址被隐式地加到该指针上。

4)r_length——该字段含有指针长度的2的次方值:0表示1字节长,1表示2字节长,2表示4字节长。

5)r_extern——如果被置位,表示该重定位需要一个外部引用;此时链接程序必须使用一个符号地址来更新相应指针。当该位是0时,则重定位是“局部”的。链接程序更新指针以反映各个段加载地址中的变化,而不是反映一个符号值的变化。在这种情况下,r_symbolnum字段的内容是一个n_type值;这类字段告诉链接程序被重定位的指针指向那个段。

6)r_pad——Linux系统中没有使用的4个比特位。在写一个目标文件时最好全置0。

符号将名称映射为地址(或者更通俗地讲是字符串映射到值)。由于链接程序对地址的调整,一个符号的名称必须用来表示其地址,直到已被赋予一个绝对地址值。符号是由符号表中固定长度的记录以及字符串表中的可变长度名称组成。符号表是nlist结构的一个数组,如下所示:

其中各字段的含义为:

1)n_un.n_strx——含有本符号的名称在字符串表中的字节偏移值。当程序使用nlist()函数访问一个符号表时,该字段被替换为n_un.n_name字段,这是内存中字符串的指针。

2)n_type——用于链接程序确定如何更新符号的值。使用第146~154行开始的位屏蔽(bitmasks)码可以将8比特宽度的n_type字段分割成三个子字段,如图14-2所示。对于N_EXT类型位置位的符号,链接程序将它们看作是“外部的”符号,并且允许其他二进制目标文件对它们的引用。N_TYPE屏蔽码用于链接程序感兴趣的比特位:

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育linux常用头文件详解(11)全文阅读和word下载服务。

linux常用头文件详解(11).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1181483.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top