程序通訊 IPC

2021-10-08 08:08:37 字數 492 閱讀 8154

訊號、 管道、 訊息佇列、 共享記憶體

定義:程序間的軟體中斷通知和處理機制

訊號的接收處理: 捕獲(catch)

忽略(ignore)

遮蔽(mask)

不足:傳遞的資訊量小,只有乙個訊號型別

程序間基於記憶體檔案的通訊機制

匿名管道只能在父子程序間進行通訊,不能再網路間進行通訊,而且資料傳輸是單向的,只能一端寫,一端讀。

命名管道可以在任意程序間進行通訊,通訊是雙向的,任意一端都可讀可寫,但是在同一時間內只能有一端讀,一端寫。

訊息佇列是作業系統維護的以位元組序列為基本單位的間接通訊機制

先進先出fifo

訊息佇列的系統呼叫

msgget

msgsnd

msgrcv

msgctl

把乙個物理空間對映到多個程序的記憶體位址空間的通訊機制

shmget

shmat

shmdt

shmctl

linux程序通訊(ipc)

1 管道 半雙工管道是最常用的ipc 只能在有關係的程序間才能使用,shell上常用 2 命名管道 在檔案系統中命名管道式以特殊檔案的形式存在的。不在同一程序組的兩個程序通訊可以使用命名管道。3 訊息佇列 核心空間中的內部鍊錶,通過linux核心在各個程序之間傳遞內容 4 訊號 用於在乙個或多個程序...

程序間通訊IPC

這兩天學習了 unix 的程序間通訊 ipc,這裡面有幾個很重要的基本概念,特別是訊息佇列和我的畢設很有關係,因此多說幾句。以前學習的程序間通訊方式,一般都是經由 fork 或exec 開啟檔案,或經過檔案系統。而 ipc是程序間通訊方式的統稱。下面一一道來。一 管道 管道是最老的 ipc形式。管道...

程序間通訊 IPC

part2 index1.html part2 index2.html linux至少支援如下ipc機制 同時支援posix和system v方式 streams ipc機制,linux本身不支援,有乙個單獨的安裝包 可以跨pc的程序通訊 互斥鎖或條件變數 動態初始化 不能使靜態分配 在共享記憶體中...