linux 程序間通訊 FIFO

2021-07-09 14:33:44 字數 527 閱讀 2543

建立乙個有名管道,解決無血緣關係的程序通訊, fifo;

建立乙個fifo檔案,儲存在硬碟上。

程序預先知道檔案的名字,便可以通過這個標識進行通訊。

可以通過函式建立檔案

int mkfifo(const char *pathname, mode_t mode);

可以通過命令mkfifo穿件fifo檔案

void err(char *name, int err_num)

int main()

int re = write(fd, "hello!!\n", sizeof("hello!!\n"));

if(re < 0)

return 0;

}編譯出可執行程式 mytest

#mkfifo fifo

#mytest

阻塞另乙個終端

#cat  fifo

hello!!

雖然程序通過fifo進行通訊  然而硬碟上的fifo並沒有內容

我們可以把fifo理解為乙個找到通訊位置的地圖

程序間通訊 fifo

fifo,同時也被稱為有命管道,未命名的管道只能用於有親緣關係之間的程序間的通訊,而命名管道可以實現兩個互不相關之間程序的通訊。在linux下,我們可以通過mkfifo命令建立命名管道,fifo實際上並不占取實際的儲存空間,只是在核心pipe中的乙個鏈結。我們可以通過其大小來檢視。fifo實際結構為...

程序間通訊(FIFO)

一 有名管道 管道沒有名字,因此它們只能用於有乙個公共祖先各個程序之間的通訊,我們無法在無親緣關係的程序之間程序ipc通訊。有名管道即fifo,指先進先出,它是乙個半雙工的資料流,不同於管道的是每乙個fifo有乙個路徑名與之關聯,從而允許無 親緣之間的程序進行通訊。二 建立的函式 fifo由mkfi...

Linux程序間通訊 fifo測試

1 fifo原因 有名管道 檔案 安全性,不自動化,資料不完整沒有保障 鎖的機制 php開發 的時候,登入,session 2 測試 mkfifo 192.168.0.155 ncc fifo write.c 192.168.0.155 ncc fifo read.c 其中 fifo write.c...