命名管道(FIFO)的實現

2021-07-13 16:06:30 字數 933 閱讀 8682

管道隨程序

命名管道是乙個裝置檔案,是存在於硬碟上的檔案

用mkfifo()建立命名管道,可用於任何兩個程序之間的通訊

client.c(寫端)

#include#include#include#include#include#include#include#define _path_ "/tmp/file.tmp"

#define _size_ 100

int main()

int fd=open(_path_,o_wronly);  //open by the way of write

if(fd<0)

char buf[_size_];

memset(buf,'\0',strlen(buf)+1);

while(1)

if(strncmp(buf,"quit",4)==0)

}close(fd);

return 0;

}server.c(讀端)

#include#include#include#include#include#include#define _path_ "/tmp/file.tmp"

#define _size_ 100

int main()

char buf[_size_];

memset(buf,'\0',sizeof(buf));

while(1)

printf("%s\n",buf);

if(strncmp(buf,"quit",4)==0)

}close(fd);

return 0;

}結果:

本文出自 「追尋內心的聲音」 部落格,請務必保留此出處

命名管道(FIFO)

client.c include include include include include define path home chen 7month 7 28 fifo my fifo 這個就是管道的名字,和建立的路徑 int main char buf 1024 while 1 close ...

命名管道 FIFO

解決了無關程序不能使用管道通訊的問題。pipe是線性的,乙個pipe只能有乙個輸入輸出,fifo是非線性的,乙個fifo可以有多個輸入或輸出。fifo的用途 1 shell命令使用fifo將資料從一條管道傳送到另一條時,無需建立中間臨時檔案。2 客戶程序 伺服器程序應用程式中,fifo用作匯聚點,在...

命名管道FIFO

首先我得檢討一下自己,這幾天有些頹呀,打不起精神,板子出了點問題,果真自學還是很困難呀,硬體方面難解決呀,理想與現實還是很有差距的,傷透了,凌亂了。一直在理解程序間通訊的問題。發現上次忽略了乙個問題,就是命名管道,命名管道和一般的管道有一些顯著的不同 1.fifo是在檔案系統中作為乙個特殊的裝置檔案...