新聞中心
linux動(dòng)態(tài)庫(kù),常被稱(chēng)作共享庫(kù),它實(shí)際上是一種可重用、存放在獨(dú)立文件中并具有特殊功能的代碼,用于在應(yīng)用程序中提供特定功能,可以幫助提高代碼復(fù)用性且多次使用,而在后續(xù)維護(hù)環(huán)節(jié)也只需要對(duì)這幾個(gè)庫(kù)文件進(jìn)行更新即可。探究Linux動(dòng)態(tài)庫(kù)原理之路,可以從三個(gè)角度來(lái)分析:調(diào)用原理、鏈接原理和維護(hù)原理。

創(chuàng)新互聯(lián)公司專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站設(shè)計(jì)、張店網(wǎng)絡(luò)推廣、成都微信小程序、張店網(wǎng)絡(luò)營(yíng)銷(xiāo)、張店企業(yè)策劃、張店品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供張店建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
首先,調(diào)用原理,Linux動(dòng)態(tài)庫(kù)的工作原理如下:當(dāng)程序執(zhí)行時(shí),會(huì)像系統(tǒng)請(qǐng)求一個(gè)或多個(gè)共享庫(kù),系統(tǒng)就會(huì)將要求轉(zhuǎn)發(fā)到目標(biāo)動(dòng)態(tài)鏈接程序中,此程序會(huì)掃描所有可用共享庫(kù),在其中查找目標(biāo)可執(zhí)行程序需要的代碼,倘若找到,則鏈接器再將共享庫(kù)代碼加載到主內(nèi)存,再給與主程序的內(nèi)存已有的代碼一起生成新的可執(zhí)行文件;而實(shí)際上程序員在調(diào)用共享庫(kù)時(shí)無(wú)需操心共享庫(kù)文件的存在位置,計(jì)算機(jī)總是會(huì)自動(dòng)幫助你完成這項(xiàng)工作的:
“`C
#include
#include
int main()
{
// 聲明一個(gè)字符數(shù)組
char string[50];
// 將字符串存放在字符數(shù)組中
strcpy(string, “l(fā)inux dylib”);
// 將字符串從字符串?dāng)?shù)組中打印出來(lái)
printf(“String is: %s”, string);
return 0;
}
其次,討論Linux動(dòng)態(tài)庫(kù)的鏈接原理。當(dāng)調(diào)用共享庫(kù)的程序要編譯的時(shí)候,編譯器會(huì)在工程代碼中搜索到鏈接庫(kù)定義的函數(shù)或變量,然后鏈接器把相關(guān)的動(dòng)態(tài)庫(kù)文件鏈接到可執(zhí)行文件中,形成一個(gè)可執(zhí)行文件。舉例來(lái)說(shuō),Linux有很多標(biāo)準(zhǔn)C函數(shù),比如strcpy,它是一個(gè)典型的內(nèi)置于c語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的函數(shù),要借助共享庫(kù)來(lái)調(diào)用它,則可以使用下面的方式:
```c
char s[100];
strcpy(s, "Linux dynamic library");
最后,關(guān)于Linux動(dòng)態(tài)庫(kù)的維護(hù)原理。因?yàn)閯?dòng)態(tài)庫(kù)文件既可以作為應(yīng)用程序的一部分,也可以獨(dú)立存在于某處,因此,當(dāng)有新的功能庫(kù)文件要發(fā)布時(shí),只需要修改或更新動(dòng)態(tài)庫(kù)文件,不用修改每個(gè)調(diào)用這些動(dòng)態(tài)庫(kù)文件的程序,就可以達(dá)到更新功能的目的。同時(shí)對(duì)于動(dòng)態(tài)庫(kù)文件也并不是萬(wàn)不得已才會(huì)被更新,要維護(hù)其功能一定要有一些必要的更新,以避免程序的崩潰,例如變量的越界訪問(wèn),函數(shù)的最強(qiáng)類(lèi)型檢查等等。
總結(jié)而言,Linux動(dòng)態(tài)庫(kù)是一種可重用的代碼,有助于后期維護(hù),主要的工作原理是程序執(zhí)行時(shí)會(huì)像系統(tǒng)請(qǐng)求一個(gè)或多個(gè)共享庫(kù),同時(shí)也會(huì)完成編譯、鏈接和執(zhí)行,最后當(dāng)有新的功能時(shí),只需要更新動(dòng)態(tài)庫(kù)文件即可實(shí)現(xiàn)更新功能,無(wú)需修改調(diào)用它們的程序。
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢(xún):028-86922220。
網(wǎng)站標(biāo)題:探究Linux動(dòng)態(tài)庫(kù)原理之路(linux動(dòng)態(tài)庫(kù)原理)
文章來(lái)源:http://www.dlmjj.cn/article/djedphh.html


咨詢(xún)
建站咨詢(xún)
