Linux有名管道程式設計

2021-04-12 19:38:59 字數 1010 閱讀 1600

有名管道可以用於任何兩個程式間通訊,因為有名字可引用。注意管道都是單向的,因此雙方通訊需要兩個管道。

下面分別是這兩個程式**,同樣是lucy先執行,然後是peter。

fifolucy.c

#include

#include

#include

#include

#include

#include

#include

#include

int main()

write_fd = open(write_fifo_name, o_wronly);

if(write_fd == -1)

while((read_fd = open(read_fifo_name,o_rdonly)) == -1)

while(1)

write(write_fd, buf, strlen(buf));

len = read(read_fd, buf, 256);

if( len > 0) }}

fifopeter.c

#include

#include

#include

#include

#include

#include

#include

int main(void)

while((read_fd = open(read_fifo_name, o_rdonly)) == -1)

write_fd = open(write_fifo_name, o_wronly);

if(write_fd == -1)

while(1)

printf("peter: ");

fgets(buf, 256, stdin);

buf[strlen(buf)-1] = '/0';

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

write(write_fd, buf, strlen(buf));}}

有名管道管道程式設計

linux程序和程序之間有多種通訊方式。linux程序間通訊的主要方式有 1 無名管道 2 有名管道 3 訊號 4 訊息佇列 5 共享記憶體 6 訊號量 7 套接字 管道操作是比較簡單的通訊方式,乙個程序往管道中寫入資料,另乙個程序從管道中讀出資料。管道包括無名管道和有名管道。前者只能用於父程序和子...

Linux 有名管道

include apue.h 在當前目錄建立乙個管道檔案 main printf success to mkfifo ret d n ret return 0 include apue.h main printf success to open file fd d n fd 向有名管道中寫資料 wr...

linux 有名管道(FIFO)

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