21 有名管道fifo

2021-08-21 04:25:00 字數 616 閱讀 7400

1.特點

有名管道

在磁碟上有這樣乙個檔案,可通過命令ls -l檢視字首帶p的檔案

偽檔案,在磁碟上大小永遠為0

在核心中有乙個對應的緩衝區

半雙工的通訊方式

預設阻塞

2.使用場景

沒有血緣關係的程序間通訊

3.建立方式

命令:mkfifo 管道名

函式:mkfifo 類似於mkdir

4.fifo檔案可以使用io函式進行操作

open/close

read/write

不能執行lseek操作

5.程序間通訊

(1) fifo檔案---myfifo

(2)兩個不相干的程序a(a.c)和b(b.c)

a.c ---> read

int fd = open("myfifo",o_rdonly);

read(fd,buf,sizeof(buf));

close(fd);

b.c ---> write

int fd1 = open("myfifo",o_wronly);

write(fd1,"hello,world",11);

close(fd1)

FIFO 有名管道

有名管道相關的關鍵概念 管道應用的乙個重大限制是它沒有名字,因此,只能用於具有親緣關係的程序間通訊,在有名管道 named pipe或fifo 提出後,該限制得到了克服。fifo不同於管道之處在於它提供乙個路徑名與之關聯,以fifo的檔案形式存在於檔案系統中。這樣,即 使與fifo的建立程序不存在親...

linux 有名管道(FIFO)

管道的緩衝區是有限的 管道制存在於記憶體中,在管道建立時,為緩衝區分配乙個頁面大小 管道所傳送的是無格式位元組流,這就要求管道的讀出方和寫入方必須事先約定好資料的格式,比如多少位元組算作乙個訊息 或命令 或記錄 等等 多個寫程序,乙個讀程序。可以參考我之前的部落格 一旦設定了阻塞標誌,呼叫mkfif...

Linux c 管道和有名管道(FIFO)

一.管道 1.只能用於具有親緣關係的程序之間的通訊 2.半雙工通訊模式 3.一種特殊的檔案,是一種只存在於核心中的讀寫函式 管道基於檔案描述符,管道建立時,有兩個檔案描述符 a.fd 0 固定用於讀管道 b.fd 1 固定用於寫管道 建立管道 pipe 一般步驟 1.pipe 建立管道 2.fork...