linux ipc 無名管道

2021-10-23 20:52:34 字數 853 閱讀 1128

1、無名管道是linux系統下的一種ipc通訊機制。

2、在linux下一切皆檔案,管道也不列外,管道也是一種特殊的檔案,在使用pipe()方法申請的時候,會得到兩個檔案描述符,乙個用於寫,乙個用於讀,這個特殊的「檔案」,你可以理解為在系統的記憶體空間申請了一塊位址專門用來進行讀寫。

1、 主要用於程序間的通訊,但是這裡注意這裡的程序是具有特殊關係的親信程序,比如父程序和子程序、父程序和孫子程序、兄弟程序。

2、為什麼只能親信程序之間使用管道進行ipc通訊呢?

原因是父程序使用pipe生成出檔案描述符,之後父程序fork出的子程序是可以共享這個檔案描述符進行操作的。非親信的程序是拿不到這個檔案描述符的。

#include

#include

#include

void

read_data

(int pipes)

exit(0

);}void

write_data

(int pipes)

}close

(pipes[1]

);//關掉寫

exit(0

);}int

main()

pid =

fork()

;if(pid <0)

else

if(pid ==0)

else

if(pid >0)

}

測試結果

linux ipc 有名管道

1 有名管道是linux系統下的一種ipc通訊機制。2 命名管道也被稱為fifo檔案,是一種特殊的檔案。1 有名管道是相對於無名管道而產生的,我們知道無名管道只能親信程序間可以使用,而有名管道在互不相干的兩個程序之間可以實現資料交換。int mkfifo const char filename,mo...

linux管道(無名管道)

首先管道是程序之間的乙個單向資料流,它的資料流向由核心管理,只能從乙個程序流向另外乙個程序,乙個程序向管道寫入資料,另外乙個程序從這個管道讀取資料。在使用管道 無名管道 時,只能用在父子程序或者親屬程序之間,若要用在任意程序之間則需要使用fifo 有名管道 如圖程序ab通過管道進行資料交換。程序a通...

Linux管道(無名管道)

是一套免費使用和自由傳播的類unix作業系統,是乙個基於posix和unix的多使用者 多工 支援多執行緒和多cpu的作業系統。它能執行主要的unix工具軟體 應用程式和網路協議。它支援32位和64位硬體。linux繼承了unix以網路為核心的設計思想,是乙個效能穩定的多使用者網路作業系統。它主要用...