關於命名管道的小案例

2021-08-19 04:25:31 字數 1017 閱讀 5159

1. 命名管道

建立命名管道建立方式:

函式:mkfifo(「my.p」,0644)

命令:mkfifo my.p

命名管道作用:在核心中建一塊緩衝區,並命名,使得2個沒有親緣關係的程序能夠實現通訊,通過

open

這塊緩衝區往裡面寫東西,讀東西。一旦這

2個程序能夠找到了這塊共有的緩衝區,可以刪除

my.p

這個檔案,刪除之後並不影響

2個程序的通訊。

需要注意的是:當只有程序往這塊快取寫東西時(即沒有讀程序),那麼寫程序就處於阻塞狀態,反之也一樣;因此,命名管道必須是2個程序乙個寫乙個讀,在

linux

下,我們可以使用兩個終端來觀測。

2. 案例。本案例有3個原始檔分別是:(

1)建立命名管道(

2)寫內容到管道裡(

3)從管道讀取東西。

(1)建立命名管道:

1 #include 2 #include 3 #include 4 

5 int main()

6

(2)寫管道

1 #include 2 #include 3 #include 4 #include 5 int main()

6 13

14 int i=0;

15 while(1)

16

22 return 0;

23 }

(3)讀管道

2 #include 3 #include 4 #include 5 #include 6 

7 int main()

8 15

16 int i=0;

17 while(1)

18

23 return 0;

24 }

linux的管道和命名管道

看了個教程,感覺還是要結合 看。管道是linux裡面程序間通訊的一種方式,其他的還有像訊號 signal 訊號量 訊息佇列 共享記憶體 套接字 socket 等。1.管道pipe int pipe int fd 2 返回值 成功,返回0,否則返回 1。引數陣列包含pipe使用的兩個檔案的描述符。fd...

命名管道的使用

我在工作中碰到了乙個這樣的問題,有兩個程式,第乙個程式會fork乙個程序exec呼叫第二個程式,這樣呼叫後,第乙個程式還是繼續執行父程序的。我要求第乙個程式的父程序停止執行,直到第二個程式退出或執行到某個時候才繼續執行。下面是兩個例子程式的 先執行gui程式,再執行player程式 gui 在後台執...

機器學習小案例篇 關於RFM模型的小案例

import pandas as pdin 75 trad flow pd.read csv d python script rfm trad flow.csv encoding gbk 編碼格式需要進行修改 trad flow.head 預設前五行out 75 transid cumid time...