命名管道(FIFO)

2021-07-15 19:04:08 字數 1071 閱讀 8794

**:

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(fd);

printf("client quit\n");

return 0;

}

server.c:

#include #include #include #include #include #define  __path__ "/home/chen/7month/7_28/fifo/my_fifo"

int main()

int fd = open(__path__,o_rdonly,0);//以唯讀的方式開啟命名管道

printf("open file success\n");

if(fd < 0)

char buf[1024];

while(1)

if(strcasecmp("quit",buf) == 0)

} close(fd);

printf("server quit\n");

return 0;

}

執行結果

分析:管道其實就是個檔案,生命週期是和普通的檔案是一樣的,不刪除它永遠存在

命名管道 FIFO

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

命名管道FIFO

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

UNIX命名管道FIFO

fifo,又稱命名管道,是linux下 unix環境下 一種程序間通訊的機制,應用廣泛。函式mkfifo用於建立命名管道,使用命令man 3 mkfifo可檢視此函式資訊。fifo建立後,可以像普通檔案一樣對其訪問。執行命令 mkfifo tmp fifo cat tmp fifo 程式阻塞。再開啟...