perl中的命名管道pipe

2021-10-02 19:14:52 字數 836 閱讀 8540

一. pipe():建立命名管道,與 linux c 系統呼叫一樣。 

格式: pipe(read,write); 

pipe建立兩個連線的控制代碼,乙個讀,乙個寫,任何寫入到writer的都可以從reader中讀出。

實 例:pipe(readme,writeme); #建立了乙個管道對,"readme"用於讀,"writeme"用於寫。

$aaa=pipe(aaa,bbb); #建立了乙個管道對,"aaa"用於讀,"bbb"用於寫,$aaa變數為呼叫pipe()的返回值。 

講解:正常呼叫後返回值為非零數,第乙個引數為被建立的讀管道,第二個引數為被建立的寫管道。此函式通常配合程序中 的fork()函式一同使用,步驟是先使用pipe()函 數建立管道對,再使用fork()建立新程序,在不同的程序關閉不同的管道,這樣就可以達到管道間通訊的目的了。 

二. close(): 關閉命名管道 

格式: close(aaa); 

close bbb; 

注:close()在呼叫時能將子程式的終止**放到特殊變數$?中;當關閉的是寫管道時close()呼叫將進入堵塞狀態直至另一端完成它的 全部工作為止。 

三. 讀寫管道與普通檔案相同

注:1.@_ 是函式傳參時放置引數的陣列,可以從中取實參,

比如 my($para1,$para2...)=@_, 函式呼叫時填了幾個引數,便可以從該陣列中取到幾個引數。

2.$_ 是預設引數的意思,指的是在不指定的情況下,程式處理的上乙個變數,比如

open(in,")

close(in);

這個例子是開啟乙個文字檔案,讀取每一行,在沒有指定引數的情況下,$_當時指向了從檔案中讀取的每一行。

Linux 匿名管道pipe與命名管道FIFO

什麼是管道 功能 建立匿名管道 引數 fd 檔案描述符陣列,其中fd 0 表 示讀端,fd 1 表 示寫端 返回值 成功返回0,失敗返回錯誤 實現 include include include include int main memset buf,0x00,sizeof buf 從管道中讀取 i...

linux中管道 pipe 一談

管道 pipe 是linux上程序間通訊的一種方式,其是半雙工 資料流只能在乙個方向上流動 還需要經過核心 及要麼是接收,要麼是傳送 並且只能在父子程序 或 具有公共祖先的兩個子程序間通訊。管道 pipe 一般是在呼叫fork函式之前呼叫pipe函式建立,這樣的話,fork後子程序將得到父程序的兩個...

例項 Linux管道pipe的使用

例項 linux管道pipe的使用 moakap總結 函式 include int pipe int filedes 2 描述 pipe 函式建立乙個管道和指向該管道的一對檔案描述符,並且將檔案描述符儲存到檔案描述符陣列filedes中。其中filedes 0 為讀端,filedes 1 為寫端。返...