Linux 使用命名管道通訊例項

2021-09-25 14:12:51 字數 1717 閱讀 7499

例1. 用命名管道實現檔案拷貝

如圖:我用命名管道tp 實現了將檔案abc 中內容拷貝至abc.bak中,具體實現過程我在上篇部落格中詳細說明了,這裡我不贅述,只顯示**實現過程。

上篇部落格:程序間通訊——管道詳解

完整**

fifo1.c

#include #include #include #include #include #include #define err_exit(m)\

do\while(0)

int main()

fifo2.c

#include #include #include #include #include #include #define err_exit(m)\

do\while(0)

int main()

makefile

.phony:all

all:fifo1 fifo2

fifo1:fifo1.c

gcc -o $@ $^

fifo2:fifo2.c

gcc -o $@ $^

.phony:clean

clean:

rm -f fifo1 fifo2

例2. 用命名管道實現client和server的通訊

實現過程主要是通過建立命名管道 myfifo,然後由客戶端向管道中寫內容,伺服器從管道中讀內容實現通訊。

如圖:

完整**展示:

server.c

#include #include #include #include #include #include #define err_exit(m)\

dowhile(0)

int main()

else if(s==0) //所讀檔案已經關閉

else //讀取檔案失敗

err_exit("read error\n");

} close(rfd);

return 0;

}

client.c

#include #include #include #include #include #include #define err_exit(m)\

dowhile(0)

int main()

else //讀取檔案失敗

err_exit("read error\n");

} close(wfd);

return 0;

}

makefile

.phony:all

all:client server

client:client.c

gcc -o $@ $^

server:server.c

gcc -o $@ $^

.phony:clean

clean:

rm -f client server

多多支援博主哦~

Linux命名管道通訊例項

理解 suck 端簡單實現 include include include include include 讀取方式巨集定義 include 使用者許可權巨集定義 includeint main 如果鍵盤有輸入 if fd isset fileno stdin read fd close rfd c...

命名管道 跨程序通訊例項

client dword winapi pipethreadproc lpvoid lpparameter else we are done connecting to the server pipe,we can start communicating with the server using ...

Linux程序間通訊 使用命名管道

在前一篇文章 linux程序間通訊 使用匿名管道 中,我們看到了如何使用匿名管道來在程序之間傳遞資料,同時也看到了這個方式的乙個缺陷,就是這些程序都由乙個共同的祖先程序啟動,這給我們在不相關的的程序之間交換資料帶來了不方便。這裡將會介紹程序的另一種通訊方式 命名管道,來解決不相關程序間的通訊問題。一...