linux 程序間的通訊之管道通訊

2021-09-06 10:19:53 字數 742 閱讀 8519

通過建立命名管道實現任何乙個程序的通訊:

mkfifo_read.c

1 #include2 #include

3 #include4 #include5

6 #include7 #include8

9#define fifo "text"

1011

int main(int argc, char *argv)

1223

if((fd = open(fifo,o_rdonly|o_nonblock,0)) == -1)24

28while(1)29

37 }

mkfifo_write.c

1 #include2 #include3

4 #include5 #include6 #include7

8#define fifo "text"910

int main(int argc, char *argv)

1119

20if((nwrite = write(fd,argv[1],100)) == -1)21

24else

25 printf("

write %s\n

",argv[1

]);26 }

注:一:o_nonblock 如果pathname指的是乙個fifo、乙個特殊檔案或乙個字元特殊檔案,則此選項為檔案的本次開啟操作和後續的i/o操作設定非阻塞模式。

linux程序間通訊之管道通訊

一 命名管道通訊 管道通訊分為 無名管道和有名管道 無名管道是用於父子孫程序,之間有血緣關係 有名管道 用於任意兩個程序 無名管道 1 建立 int pipe int filedis 2 它會建立兩個檔案描述符 filedis 0 用於讀管道 filedis 1 用於寫管道 通常先建立乙個管道,再通...

linux程序間通訊之管道

下面幾節,將分別溫習下linux程序進通訊的幾種機制1 管道 管道是比較古老的程序間的通訊方式。主要有有名管道和無名管道兩種。2 無名管道 它的特點就是 1 只能使用在具有親緣關係的程序之間的通訊 父子程序或者兄弟程序之間 因為只有具有親緣關係的程序才能繼承其建立的檔案描述符。2 是乙個半雙工的通訊...

Linux程序間通訊之管道

管道,你可以把它想成一根資料線,連線了兩個程序,使他們可以互相通訊。更嚴謹來說,它是乙個檔案或者一塊共享區,乙個程序往裡面寫資料,另乙個程序從裡面拿資料,以此種方式完成程序間通訊。管道是unix系統ipc最古老的形式,所有的unix系統都提供此種通訊機制 unix系統ipc是各種程序通訊方式的統稱 ...