1程序間通訊:管道
程序間通訊
ipc: inter‐process communicating
兩個程序之間互相交換資料,稱為程序間通 信。
程序a 程序b
程序間通訊
四種方式:
① 管道pipe
② 訊息佇列message queue
③ 共享記憶體shared memory
④ 網路套接字socket
管道管道:pipe,是linux作業系統提供的乙個訊息傳遞機制。
① 系統中建立乙個檔案,其檔案型別為管道
mkfifo ~/project/message
② 程序a: 開啟open該檔案,向檔案寫入write資料
③ 程序b: 開啟open該檔案,從檔案讀取read資料
於是,資料 從程序a傳遞到程序b。。。顯然,管道檔案 並不是普通的檔案。
管理檔案不是普通的檔案。。。
ls ‐l message
prw‐rw‐r‐‐1 mytest mytest 0 8月 19 02:48 message (首字母為p,表示其型別為pipe)
演示write.cpp : 向pipe中寫入資料
read.cpp: 從pipe中讀取資料
(1) open是阻塞的 乙個傳送方,乙個接收方,都齊備時才返回
(2) read是阻塞的
(3) 管道是單向的 這意味著兩個程序之間可能要建立兩個管道
(4) 和普通檔案 區別??
小結:1,管道意義
2,管道操作
學習資源《c語言/c++學習指南》linux開發篇
程序間通訊 之 管道
一 無名管道 特點 具有親緣關係的程序間通訊,但不僅僅指父子程序之間哦。1 無名管道的建立 int pipe int pipefd 引數 pipefd 陣列的首位址 返回值 成功返回0,失敗返回 1 注意 無名管道存在核心空間,建立成功會給使用者空間兩個檔案描述符,fd 0 讀管道 fd 1 寫管道...
程序間通訊之管道
我們將乙個程序到另乙個程序的資料流稱為管道,它是程序間通訊最古老的方式。管道分為兩種 匿名管道與命名管道。匿名管道 顧名思義,所謂的匿名管道自然就是沒有名字的管道,這種管道通常用於有親緣關係的程序間的通訊。匿名管道通常由pipe函式來建立,當乙個程序建立了乙個匿名管道後,它們的模型就是這樣的 可以看...
程序間通訊之管道
既然要介紹程序間通訊,首先來看看什麼是程序間通訊 2.程序間通訊的目的 1 資料傳輸 乙個程序需要將它的資料傳送給另乙個人程序 2 資源共享 多個程序共享同樣的資源 3 通知事件 乙個程序需要向另乙個或一組程序傳送訊息,通知它 它們 發生了某種事件 4 程序控制 有些程序希望完全控制某些程序的執行,...