linux程序間通訊的方法

2021-06-18 10:16:35 字數 387 閱讀 9148

程序間通訊主要包括管道, 系統ipc(包括訊息佇列,訊號量,共享儲存), socket.

管道包括三種:1)普通管道pipe, 通常有種限制,一是半雙工,只能單向傳輸;二是只能在父子程序間使用. 2)流管道s_pipe: 去除了第一種限制,可以雙向傳輸. 3)命名管道:name_pipe, 去除了第二種限制,可以在許多並不相關的程序之間進行通訊.

管道: 優點是所有的unix實現都支援, 並且在最後乙個訪問管道的程序終止後,管道就被完全刪除;缺陷是管道只允許單向傳輸或者用於父子程序之間

系統ipc: 優點是功能強大,能在毫不相關程序之間進行通訊; 缺陷是關鍵字key_t使用了核心標識,占用了核心資源,而且只能被顯式刪除,而且不能使用socket的一些機制,例如select,epoll等,其中共享記憶體的效率最高

程序間通訊方法

1 管道 pipe 管道可用於具有親緣關係程序間的通訊,允許乙個程序和另乙個與它有共同祖先的程序之間進行通訊。2 命名管道 named pipe 命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關 系 程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道通過命令m...

程序間通訊的方法

程序間通訊的方法 1.管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。2.有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。3.訊號量 semophore 訊號量是乙個...

程序間通訊的方法

原文出處 程序通常被定義為乙個正在執行的程式的例項,它由兩個部分組成 乙個是作業系統用來管理程序的核心物件。核心物件也是系統用來存放關於程序的統計資訊的地方 另乙個是位址空間,它包含所有的可執行模組或dll模組的 和資料。它還包含動態分配的空間。如執行緒堆疊和堆分配空間。每個程序被賦予它自己的虛擬位...