例項 Linux管道pipe的使用

2021-05-22 01:21:44 字數 1053 閱讀 2565

例項——linux管道pipe的使用

moakap總結 函式

#include

int pipe(int filedes[2]); 描述

pipe()函式建立乙個管道和指向該管道的一對檔案描述符,並且將檔案描述符儲存到檔案描述符陣列filedes中。其中filedes[0]為讀端,filedes[1]為寫端。

返回值0 – 管道建立成功;

-1 – 管道建立失敗,同時errno置位;

錯誤指示

efault – 無效的輸入引數filedes;

emfile – 達到當前程序允許的檔案描述符最大值;

enfile – 達到系統允許的開啟檔案的最大數;

例項下邊的例子首先建立乙個管道,然後通過fork()建立當先程序的子程序。接著每個程序關閉讀寫管道不需要的檔案描述符。子程序在當前路徑下執行「ls –a」命令,通過將管道寫描述符fd[1]複製成標準輸出,將命令執行輸出寫到管道;父程序通過fd[0]讀取管道資料並顯示。

#include 
#include 
#include 
#include 
#include 
#include 
int main(int argc, char *argv)
;

int read_count = 0;

int status = 0;

//建立管道

if (pipe(fd) < 0)

//建立子程序

if ((pid = fork()) < 0)

//子程序操作

if (pid == 0)

//close fd[1],標準輸出即為fd[1]

close(fd[1]); }

//執行命令

status = system("ls –a");

if (status == -1)

} else

}

Linux管道pipe使用例項

函式 include int pipe int filedes 2 描述pipe 函式建立乙個管道和指向該管道的一對檔案描述符,並且將檔案描述符儲存到檔案描述符陣列filedes中。其中filedes 0 為讀端,filedes 1 為寫端。返回值0 管道建立成功 1 管道建立失敗,同時errno置...

Linux Shell 管道命令 pipe 的使用

command1正確輸出,作為command2的輸入 然後comand2的輸出作為,comand3的輸入 comand3輸出就會直接顯示在螢幕上面了。通過管道之後 comand1,comand2的正確輸出不顯示在螢幕上面 注意 1 管道命令只處理前乙個命令正確輸出,不處理錯誤輸出 2 管道命令右邊命...

程序通訊的例項 管道 pipe

4.7.5 程序通訊的例項 管道 pipe 1.管道pipe 程序通訊的使用例子之一是unix系統的管道通訊。unix系統從system v 開始,提供有名管道和無名管道兩種通訊方式,這裡介紹無名管道。無名管道為建立管道的程序及其子孫提供一條以位元流方式傳送訊息的通訊管道。該管道再邏輯上被看作管道檔...