前幾天我們簡單的介紹了程序間通訊的一種渠道——管道,我們有說道管道的概念,管道的通訊原理,還提到了管道的兩種型別:有名管道和無名管道,今天我們就來說說有名管道吧
基本概念:
有名管道在檔案目錄中有乙個檔案標示(管道檔案)。實際不佔據磁碟空間。資料快取在記憶體上(只有使用時記憶體才開闢,由於在記憶體上,因此管道檔案的屬性中所佔空間大小為
0位元組;當兩個程序間一讀一寫完成後,管道檔案也立即在記憶體清空
fifo為管道檔案
定義乙個
buff
,將fd
裡的資料讀入
buff裡;
函式呼叫以後並不會立即返回,需要等待某些條件的發生才會返回
open
,read
,write
函式在操作檔案時不會阻塞,但在操作管道檔案時會出現阻塞
Linux程序間通訊 管道(有名管道
時隔很久,再來更博.今天主要寫的是linux中程序間通訊,程序間進行通訊的目的就是多個程序之間資料互相交換。程序間通訊方式有以下幾種 1 訊號 2 管道 分為有名管道和無名管道 3 訊號量 4 訊息佇列 5 共享儲存 共享記憶體 6 套接字 socket 其中套接字屬於多機通訊 全雙工通訊 其餘的屬...
程序間通訊(管道和有名管道)
管道 pipe 是兩個程序之間進行單向通訊的機制,因為它的單向性,所以又稱為半雙工管道。它主要用於程序間的一些簡單通訊。資料只能由乙個程序流向另乙個程序 乙個寫管道,乙個讀管道 如果要進行全雙工通訊,需要建立兩個管道。管道只能用於父子程序或者兄弟程序之間的通訊。管道沒有名字,且其緩衝區大小有限。乙個...
Linux 程序間通訊(管道及有名管道FIFO)
一.管道 1.只能用於具有親緣關係的程序之間的通訊 2.半雙工通訊模式 3.一種特殊的檔案,是一種只存在於核心中的讀寫函式 管道基於檔案描述符,管道建立時,有兩個檔案描述符 a.fd 0 固定用於讀管道 b.fd 1 固定用於寫管道 建立管道 pipe 一般步驟 1.pipe 建立管道 2.fork...