Linux環(huán)境進(jìn)程間通信

ID:42618933

大?。?63.52 KB

頁(yè)數(shù):82頁(yè)

時(shí)間:2019-09-18

Linux環(huán)境進(jìn)程間通信_(tái)第1頁(yè)
Linux環(huán)境進(jìn)程間通信_(tái)第2頁(yè)
Linux環(huán)境進(jìn)程間通信_(tái)第3頁(yè)
Linux環(huán)境進(jìn)程間通信_(tái)第4頁(yè)
Linux環(huán)境進(jìn)程間通信_(tái)第5頁(yè)
資源描述:

《Linux環(huán)境進(jìn)程間通信》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、目錄Linux環(huán)境進(jìn)程間通信(一):管道及有名管道21、管道概述及相關(guān)API應(yīng)用21.1管道相關(guān)的關(guān)鍵概念21.2管道的創(chuàng)建31.3管道的讀寫(xiě)規(guī)則31.4管道應(yīng)用實(shí)例71.5管道的局限性92、有名管道概述及相關(guān)API應(yīng)用102.1有名管道相關(guān)的關(guān)鍵概念102.2有名管道的創(chuàng)建102.3有名管道的打開(kāi)規(guī)則102.4有名管道的讀寫(xiě)規(guī)則102.5有名管道應(yīng)用實(shí)例14Linux環(huán)境進(jìn)程間通信(二):信號(hào)(上)171、信號(hào)及信號(hào)來(lái)源172、信號(hào)的種類18(1)可靠信號(hào)與不可靠信號(hào)18(2)實(shí)時(shí)信號(hào)與非實(shí)時(shí)信號(hào)193、進(jìn)程對(duì)信號(hào)的響應(yīng)

2、194、信號(hào)的發(fā)送195、信號(hào)的安裝(設(shè)置信號(hào)關(guān)聯(lián)動(dòng)作)216、信號(hào)集及信號(hào)集操作函數(shù):247、信號(hào)阻塞與信號(hào)未決25Linux環(huán)境進(jìn)程間通信(二):信號(hào)(下)271、信號(hào)生命周期272、信號(hào)編程注意事項(xiàng)293、深入淺出:信號(hào)應(yīng)用實(shí)例30Linux環(huán)境進(jìn)程間通信(三):消息隊(duì)列361、消息隊(duì)列基本概念372、操作消息隊(duì)列383、消息隊(duì)列的限制414、消息隊(duì)列應(yīng)用實(shí)例41Linux環(huán)境進(jìn)程間通信(四):信號(hào)燈471、信號(hào)燈概述472、Linux信號(hào)燈473、信號(hào)燈與內(nèi)核484、操作信號(hào)燈485、信號(hào)燈的限制516、競(jìng)爭(zhēng)問(wèn)題5

3、27、信號(hào)燈應(yīng)用實(shí)例52Linux環(huán)境進(jìn)程間通信(五):共享內(nèi)存(上)581、內(nèi)核怎樣保證各個(gè)進(jìn)程尋址到同一個(gè)共享內(nèi)存區(qū)域的內(nèi)存頁(yè)面582、mmap()及其相關(guān)系統(tǒng)調(diào)用593、mmap()范例604、對(duì)mmap()返回地址的訪問(wèn)64Linux環(huán)境進(jìn)程間通信(五):共享內(nèi)存(下)671、系統(tǒng)V共享內(nèi)存原理672、系統(tǒng)V共享內(nèi)存API683、系統(tǒng)V共享內(nèi)存限制694、系統(tǒng)V共享內(nèi)存范例69Linux環(huán)境進(jìn)程間通信(六):套接口731、背景知識(shí)732、重要數(shù)據(jù)結(jié)構(gòu)74(1)表示套接口的數(shù)據(jù)結(jié)構(gòu)structsocket74(2)描

4、述套接口通用地址的數(shù)據(jù)結(jié)構(gòu)structsockaddr74(3)描述因特網(wǎng)地址結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)structsockaddr_in(這里局限于IP4)753、套接口編程的幾個(gè)重要步驟75(1)創(chuàng)建套接口,由系統(tǒng)調(diào)用socket實(shí)現(xiàn)75(2)綁定地址76(3)請(qǐng)求建立連接(由TCP客戶發(fā)起)76(4)接受連接請(qǐng)求(由TCP服務(wù)器端發(fā)起)76(5)通信77(6)通信的最后一步是關(guān)閉套接口784、典型調(diào)用代碼78(1)典型的TCP服務(wù)器代碼78(2)典型的TCP客戶代碼795、網(wǎng)絡(luò)編程中的其他重要概念80Linux環(huán)境進(jìn)程間通信(一

5、):管道及有名管道鄭彥興?(mlinux@163.com)國(guó)防科大計(jì)算機(jī)學(xué)院簡(jiǎn)介:?在本系列序中作者概述了linux進(jìn)程間通信的幾種主要手段。其中管道和有名管道是最早的進(jìn)程間通信機(jī)制之一,管道可用于具有親緣關(guān)系進(jìn)程間的通信,有名管道克服了管道沒(méi)有名字的限制,因此,除具有管道所具有的功能外,它還允許無(wú)親緣關(guān)系進(jìn)程間的通信。認(rèn)清管道和有名管道的讀寫(xiě)規(guī)則是在程序中應(yīng)用它們的關(guān)鍵,本文在詳細(xì)討論了管道和有名管道的通信機(jī)制的基礎(chǔ)上,用實(shí)例對(duì)其讀寫(xiě)規(guī)則進(jìn)行了程序驗(yàn)證,這樣做有利于增強(qiáng)讀者對(duì)讀寫(xiě)規(guī)則的感性認(rèn)識(shí),同時(shí)也提供了應(yīng)用范例。1、

6、管道概述及相關(guān)API應(yīng)用1.1管道相關(guān)的關(guān)鍵概念管道是Linux支持的最初UnixIPC形式之一,具有以下特點(diǎn):·管道是半雙工的,數(shù)據(jù)只能向一個(gè)方向流動(dòng);需要雙方通信時(shí),需要建立起兩個(gè)管道;·只能用于父子進(jìn)程或者兄弟進(jìn)程之間(具有親緣關(guān)系的進(jìn)程);·單獨(dú)構(gòu)成一種獨(dú)立的文件系統(tǒng):管道對(duì)于管道兩端的進(jìn)程而言,就是一個(gè)文件,但它不是普通的文件,它不屬于某種文件系統(tǒng),而是自立門戶,單獨(dú)構(gòu)成一種文件系統(tǒng),并且只存在與內(nèi)存中?!?shù)據(jù)的讀出和寫(xiě)入:一個(gè)進(jìn)程向管道中寫(xiě)的內(nèi)容被管道另一端的進(jìn)程讀出。寫(xiě)入的內(nèi)容每次都添加在管道緩沖區(qū)的末尾,并

7、且每次都是從緩沖區(qū)的頭部讀出數(shù)據(jù)。1.2管道的創(chuàng)建#includeintpipe(intfd[2])該函數(shù)創(chuàng)建的管道的兩端處于一個(gè)進(jìn)程中間,在實(shí)際應(yīng)用中沒(méi)有太大意義,因此,一個(gè)進(jìn)程在由pipe()創(chuàng)建管道后,一般再fork一個(gè)子進(jìn)程,然后通過(guò)管道實(shí)現(xiàn)父子進(jìn)程間的通信(因此也不難推出,只要兩個(gè)進(jìn)程中存在親緣關(guān)系,這里的親緣關(guān)系指的是具有共同的祖先,都可以采用管道方式來(lái)進(jìn)行通信)。1.3管道的讀寫(xiě)規(guī)則管道兩端可分別用描述字fd[0]以及fd[1]來(lái)描述,需要注意的是,管道的兩端是固定了任務(wù)的。即一端只能用于

8、讀,由描述字fd[0]表示,稱其為管道讀端;另一端則只能用于寫(xiě),由描述字fd[1]來(lái)表示,稱其為管道寫(xiě)端。如果試圖從管道寫(xiě)端讀取數(shù)據(jù),或者向管道讀端寫(xiě)入數(shù)據(jù)都將導(dǎo)致錯(cuò)誤發(fā)生。一般文件的I/O函數(shù)都可以用于管道,如close、read、write等等。從管道中讀取數(shù)據(jù):·如果管道的寫(xiě)端不存在,則認(rèn)為已經(jīng)讀

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
关闭