程序之間通訊 無名管道

2021-08-21 02:59:50 字數 839 閱讀 9852

程序之間常用的通訊方式有:

(1)無名管道(具有親緣關係的父子程序)

(2)有名管道(任意兩個程序)

(3)訊號

(4)訊息佇列

(5)記憶體共享

(6)訊號量(一般是程序之間同步的手段,一般配合互斥鎖、條件變數一起使用)

(7)socket套接字

現在介紹最簡單的無名管道,用到的api函式如下:

比較簡單,我們可以定義乙個陣列pipe_fd[2]來表示管道的兩端,其中pipe_fd[0]是從管道讀取資料,pipe_fd[1]是向管道寫入資料,由於只用於父程序和子程序之間通訊,需要在建立子程序之前建立管道,這樣子程序才能繼承建立的管道,具體**如下

#include

#include

#include

#include

#include

#include

#include

/*** 無名管道是半雙工的,管道兩端的程序任何時候要麼是讀,要麼是寫

* **/

int main()

/********建立子程序*************/

pid = fork();

if(pid <0)

else if(pid>0)

else

編譯結果如圖:

在mt7688板子上執行結果:

好了,就這麼多。

程序之間的通訊 有名管道和無名管道

四 程序之間的通訊。1 為什麼要學習程序之間的通訊?例如 1 開啟了乙個名字為1的程序。2 開啟了乙個名字為2的程序。通過學習程序之間的通訊,使得不同的程序之間都是可以實現資料的交換。例如程序1傳送資料給程序2,程序2收到資料之後,根據資料來做不同的事情。間接地實現程序1控制程序2 2 在linux...

程序通訊 無名管道

管道是單向的 先進先出的,它把乙個程序的輸出和另乙個程序的輸入連線在一起。管道包括無名管道和有名管道兩種,前者用於父程序和子程序間的通訊,後者可用於執行於同一系統中的任意兩個程序間的通訊。乙個程序 寫程序 在管道的尾部寫入資料,另乙個程序 讀程序 從管道的頭部讀出資料。管道提供了簡單的流控制機制,程...

linux程序通訊 無名管道

linux無名管道通訊特點無名管道是半雙工的通訊方式,資料只能一方傳送,另一方接收。無名管道只適用於親緣關係的程序通訊。資料的讀出和寫入 乙個程序向管道中寫的內容被管道另一端的程序讀出。寫入的內容每次都新增在管道緩衝區的末尾,並且每次都是從緩衝區的頭部讀出資料。include include inc...