管道通訊習題

2021-10-05 15:46:17 字數 1580 閱讀 3190

實現思路:

​ 利用程序從管道讀資料時若沒有其他程序進行寫資料,那麼程序會阻塞這一原理。實現write程序只要定時(3s)向管道內寫資料,read程序就會在管道內有資料後讀出資料並顯示。 當關閉write程序後,read程序不會再阻塞,此時會不停地從管道中讀出空資料,所以判斷當從管道內讀出空資料時,read程序退出。

read.c:

#include

#include

#include

#include

#include

#include

#include

#include

intmain

(int argc,

char

*ar**)

;if(unlink

("my_fifo")!=

0)if(

mkfifo

("my_fifo"

, s_irusr|s_iwusr)!=0

)

fd =

open

("my_fifo"

, o_rdonly)

;while(1

)return0;

}

write.c

#include

#include

#include

#include

#include

#include

#include

#include

intmain

(int argc,

char

*ar**)

return0;

}

執行截圖:

}執行截圖:

Linux 管道通訊

一 定義 管道是單向的 先進先出的。它將乙個程式的輸入和另乙個程式的輸出連線起來。資料被乙個程序讀出後,將被從管道中刪除。分為無名和有名管道兩種。前者用於父程序和子程序間的通訊,後者用於同一系統的兩個程序間通訊。二 無名管道 int pipe int fd 2 其中,fd 0 用於讀管道,fd 1 ...

Linux管道通訊

現在在linux 中使用較多的程序間通訊方式主要有以下幾種。1 管道 pipe 及有名管道 named pipe 管道可用於具有親緣關係程序間的通訊,有名管道,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。2 訊號 signal 訊號是在軟體層次上對中斷機制的一種模擬,它是比較複雜的通訊...

pipe管道通訊

pipe函式是用來建立管道的,當它建立成功會返回兩個檔案描述符,0是讀,1是寫 在用管道時,當我們使用讀端就要關閉寫,使用寫端就要關閉讀的功能。include include include include int main double shou 2 int i 0 int ret double ...