程序間的管道通訊

2022-03-24 06:50:25 字數 876 閱讀 1169

管道是程序間通訊的一種工具。

1、管道是半雙工的,建立管道後,只能由乙個程序向另乙個程序傳資料。

2、管道只能在有公共祖先的兩個程序之間使用。父程序建立管道後,fork,這個管道就能在父子程序之間呼叫了。

管道通過pipe函式建立。

pipe(int fd[2]);

要開啟兩個檔案,檔案描述符放在fd裡面。寫資料時往fd1裡面寫,讀資料時從fd0裡面讀。

如果是父程序往子程序傳資料,父程序的fd0關閉,寫進fd1裡面去。子程序的fd1關閉,從fd0裡面讀資料。

如果是子程序往父程序傳資料,子程序的fd0關閉,寫進fd1裡面去。父程序的fd1關閉,從fd0裡面讀資料。

同時,開啟的兩個檔案file1.txt 和 file0.txt裡面根本木有東西殘留的,只是拿去當管道而已,並沒有寫入檔案裡面去。

程序間通訊 匿名管道通訊

將關於匿名管道通訊過程中遇到的問題以及心得總結一下 使用場合 匿名管道通訊對執行緒間通訊和父子程序之間的通訊非常有用 一下 分三部分 1.建立匿名管道 2.建立子程序 1 使用getstdhandle函式獲取標準輸出裝置的控制代碼 2 使用setstdhandle函式將標準輸出到寫匿名管道 3 使用...

程序間通訊方式 管道通訊

c語言中的管道通訊是通過在核心中開闢一塊空間,使用者通過檔案io介面來訪問這塊空空間實現通訊目的。管道的優點是直接訪問記憶體,通訊速度較快。缺點是一方面管道屬於半雙工的通訊,即同一程序只能讀或者寫,無法同時讀寫同一管道。另一方面管道中的資料只能讀一次,無法重複讀取。程序通過檔案io來操作管道,但是不...

程序間通訊 之 管道

一 無名管道 特點 具有親緣關係的程序間通訊,但不僅僅指父子程序之間哦。1 無名管道的建立 int pipe int pipefd 引數 pipefd 陣列的首位址 返回值 成功返回0,失敗返回 1 注意 無名管道存在核心空間,建立成功會給使用者空間兩個檔案描述符,fd 0 讀管道 fd 1 寫管道...