Linux程序間通訊 fifo測試

2021-08-20 02:46:50 字數 1264 閱讀 3049

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

#

include

#include

#include

#include

#include

#include

#include

// 列印錯誤函式

void

print_system_err

(char

*str,

interr_no)

intmain

(int

argc,

char

* argv)

fd=open(argv[1],o_wronly); //只寫方式

if (fd < 0)

// 往管道裡面寫

write(fd,buf,strlen(buf));

close(fd);

return

0;}

fifo_read.c

#

include

#include

#include

#include

#include

#include

#include

// 列印錯誤函式

void

print_system_err

(char

*str,

interr_no)

intmain

(int

argc,

char

* argv)

fd=open(argv[1],o_rdonly); //唯讀方式

if (fd < 0)

// 從管道裡面讀

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

// 列印到標準輸出

write(stdout_fileno,buf,length);

close(fd);

return

0;}

測試效果

另外乙個客戶端:

linux 程序間通訊 FIFO

建立乙個有名管道,解決無血緣關係的程序通訊,fifo 建立乙個fifo檔案,儲存在硬碟上。程序預先知道檔案的名字,便可以通過這個標識進行通訊。可以通過函式建立檔案 int mkfifo const char pathname,mode t mode 可以通過命令mkfifo穿件fifo檔案 void...

程序間通訊 fifo

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

程序間通訊(FIFO)

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