Linux中怎么調(diào)用常見的函數(shù)

本篇文章為大家展示了Linux中怎么調(diào)用常見的函數(shù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)專注于海州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供海州營銷型網(wǎng)站建設(shè),海州網(wǎng)站制作、海州網(wǎng)頁設(shè)計、海州網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造海州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供海州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

Linux中常見的函數(shù)調(diào)用

一、 創(chuàng)建進(jìn)程

創(chuàng)建進(jìn)程的總結(jié):

1、Linux中父進(jìn)程調(diào)用fork創(chuàng)建子進(jìn)程。

2、父進(jìn)程調(diào)用fork時,子進(jìn)程拷貝所有父進(jìn)程的數(shù)據(jù)接口和代碼過來。

3、當(dāng)前進(jìn)程是子進(jìn)程,fork返回0;當(dāng)前進(jìn)程是父進(jìn)程,fork返回子進(jìn)程進(jìn)程號

4、如果返回0,說明當(dāng)前進(jìn)程是子進(jìn)程,子進(jìn)程請求execve系統(tǒng)調(diào)用,執(zhí)行另一個程序。

5、如果返回子進(jìn)程號,說明當(dāng)前進(jìn)程是父進(jìn)程,按照原父進(jìn)程原計劃執(zhí)行。

6、父進(jìn)程要對子進(jìn)程負(fù)責(zé),調(diào)用waitpid將子進(jìn)程進(jìn)程號作為參數(shù),父進(jìn)程就能知道子進(jìn)程運(yùn)行完了沒有,成功與否。

7、操作系統(tǒng)啟動的時候先創(chuàng)建了一個所有用戶進(jìn)程的“祖宗進(jìn)程”,課時1,第3題A選項:0號進(jìn)程是所有用戶態(tài)進(jìn)程的祖先

創(chuàng)建進(jìn)程的系統(tǒng)調(diào)用:fork
執(zhí)行另一個程序的系統(tǒng)調(diào)用:execve
將子進(jìn)程的進(jìn)程號作為參數(shù)傳給它,父進(jìn)程就能知道子進(jìn)程運(yùn)行完了沒有,成功與否:waitpid

二、 內(nèi)存管理

內(nèi)存管理總結(jié)

1、每個進(jìn)程都有獨(dú)立的進(jìn)程內(nèi)存空間,互相之間不干擾。(隔離性)

2、進(jìn)程內(nèi)存空間,存放程序代碼的部分,稱為代碼段(Code Segment)。

3、存放進(jìn)程運(yùn)行中產(chǎn)生數(shù)據(jù)的部分,稱為數(shù)據(jù)段(Data Segment)。

4、進(jìn)程寫入數(shù)據(jù)的時候,現(xiàn)用現(xiàn)分物理內(nèi)存給進(jìn)程使用。

5、分配內(nèi)存數(shù)量比較小時,使用brk調(diào)用,會和原來的堆數(shù)據(jù)連在一起。

6、需要分配的內(nèi)存數(shù)據(jù)量比較大的時候,使用mmap,重新劃分一塊內(nèi)存區(qū)域。

分配較小內(nèi)存數(shù)量,和原來堆內(nèi)數(shù)據(jù)連在一起:brk
分配較大內(nèi)存數(shù)量,重新劃分一塊內(nèi)存區(qū)域:mmap

三、 文件管理

文件的操作六個最重要系統(tǒng)調(diào)用:
打開文件:open
關(guān)閉文件:close
創(chuàng)建文件:creat
打開文件后跳到文件某個位置:lseek
讀文件:read
寫文件:write
Linux一切皆文件
一切皆文件的優(yōu)勢即使統(tǒng)一了操作的入口,提供了極大的便利。

四、 信號處理(異常處理)

進(jìn)程執(zhí)行過程中一旦有變動,就可以通過信號處理服務(wù)及時處理。

五、 進(jìn)程間通信

有兩種方式實(shí)現(xiàn)進(jìn)程間通信
消息隊列方式
創(chuàng)建一個新的隊列:msgget
發(fā)送消息到消息隊列:msgsnd
取出隊列中的消息:msgrcv

六、 共享內(nèi)存方式

創(chuàng)建共享內(nèi)存塊:shmget
將共享內(nèi)存映射到自己的內(nèi)存空間:shmat
利用信號量實(shí)現(xiàn)隔離性
占用信號量:sem_wait
釋放信號量:sem_post

偽代碼: 假設(shè)信號量為1 signal = 1 sem_wait偽代碼 while True { if sem_wait == 1; signal -=1; break; } code.code; sem_post偽代碼 signal +=1;

七、 網(wǎng)絡(luò)通信

網(wǎng)絡(luò)插口:socket
網(wǎng)絡(luò)通信遵循TCP/IP網(wǎng)絡(luò)協(xié)議棧

八、 glibc

glibc是Linux下開源標(biāo)準(zhǔn)C庫
glibc把系統(tǒng)調(diào)用進(jìn)一步封
sys_open對應(yīng)glibc的open函數(shù)
一個單獨(dú)的glibcAPI可能調(diào)用多個系統(tǒng)調(diào)用
printf函數(shù)調(diào)用sys_open、sys_mmap、sys_write、sys_close等等系統(tǒng)調(diào)用

上述內(nèi)容就是Linux中怎么調(diào)用常見的函數(shù),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站標(biāo)題:Linux中怎么調(diào)用常見的函數(shù)
當(dāng)前網(wǎng)址:http://bm7419.com/article48/jcihhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、動態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站網(wǎng)站營銷、企業(yè)建站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)