程序間通訊之管道

2021-10-03 18:53:24 字數 824 閱讀 8873

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 程序控制 有些程序希望完全控制某些程序的執行,...