Linux管道pipe使用例項

2021-06-05 06:09:18 字數 900 閱讀 5194

函式

#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的使用

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

linux管道通訊(pipe)

linux pipe適合於父子程序之間進行通訊。如下面 所示 include include include int main create sub process pid fork if 1 pid else if 0 pid else return 0 當呼叫fork函式後,fork將會返回兩個...

linux 匿名管道pipe

管道是一種最基本的ipc機制,由pipe函式建立 include int pipe int filedes 2 呼叫pipe函式時在核心中開闢一塊緩衝區 稱為管道 用於通訊,它有乙個讀端乙個寫端,然後通 過filedes引數傳出給使用者程式兩個檔案描述符,filedes 0 指向管道的讀端,file...