基于linux程序中段總結(jié)詳解
linux程序的段陸陸續(xù)續(xù)接觸過一些,今天適當(dāng)?shù)目偨Y(jié)一下,時(shí)間倉(cāng)促,總結(jié)的比較零散。
linux 段:
text:已編譯程序的機(jī)器代碼。
.rodata:只讀數(shù)據(jù)。printf中的格式串,或者開關(guān)語(yǔ)句的跳轉(zhuǎn)表。
data:已初始化的全局變量。
bss:未初始化的全局變量。
symtab:符號(hào)表。
注意:
1、如果定義一個(gè)全局變量,int i = 0;它被初始化為0,但是,它卻不是放在data段中的,而是放在bss段中的。因?yàn)榫幾g器可能會(huì)做一些優(yōu)化,如果初始化為0,則它會(huì)將它等同于未初始化的變量。這樣的可能要求他會(huì)將所有未初始化的全局變量(bss段)初始化為0。——但是這個(gè)可能會(huì)和編譯器有關(guān)系。
2、對(duì)于static全局變量,它在符號(hào)表中有一個(gè)屬性表示他是local的,不是global。local的符號(hào)式不允許被其他的文件引用的。
3、static定義的局部變量,編譯器會(huì)把它作為static全局變量來處理。它在符號(hào)表中是出現(xiàn)的(局部變量是不出現(xiàn)的)。唯一不同的是,它會(huì)把它在符號(hào)表中的名字改掉,一般會(huì)增加一個(gè)后綴:“.1788”。用這種方法來防止和其他的全局變量重名。而且也可以防止對(duì)它的調(diào)用。
相關(guān)文章
haproxy+keepalived實(shí)現(xiàn)高可用負(fù)載均衡(實(shí)例配置)
上一篇文章以理論介紹居多,這篇文章就以實(shí)際的應(yīng)用配置為主,需要的朋友可以參考下這兩篇文章2013-01-01
Linux通過設(shè)備號(hào)找到設(shè)備的方法
所有的Linux設(shè)備文件均位于/dev目錄下,是根(/)文件系統(tǒng)的一個(gè)組成部分,因?yàn)檫@些設(shè)備文件在操作系統(tǒng)啟動(dòng)過程中必須可以使用。接下來通過本文給大家介紹Linux通過設(shè)備號(hào)找到設(shè)備的方法,感興趣的朋友一起看看吧2018-07-07
PHP程序員玩轉(zhuǎn)Linux系列 使用supervisor實(shí)現(xiàn)守護(hù)進(jìn)程
這篇文章主要為大家詳細(xì)介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,使用supervisor實(shí)現(xiàn)守護(hù)進(jìn)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Linux部署python爬蟲腳本,并設(shè)置定時(shí)任務(wù)的方法
今天小編就為大家分享一篇Linux部署python爬蟲腳本,并設(shè)置定時(shí)任務(wù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
linux free命令以及系統(tǒng)內(nèi)存占用過高的處理方式
這篇文章主要介紹了linux free命令以及系統(tǒng)內(nèi)存占用過高的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Linux下安裝IPython配置python開發(fā)環(huán)境教程
這篇文章主要為大家詳細(xì)介紹了Linux下安裝IPython配置python開發(fā)環(huán)境教程,需要的朋友可以參考下2016-05-05

