#include#include#include#include#include#include#include#define ipc_key 0x12345678
int main()
void* shm_start=shmat(shmid,null,0);
//shmat函式是將我們共享記憶體對映到虛擬空間位址
//第乙個引數是我們的操作控制代碼
//第二個引數是對映的位址空間,如果傳入null,作業系統會自動給分配乙個
//第三個引數是讀寫許可權,如果是shm_rdonly為唯讀,否則是讀寫
if(shm_start==(void*) -1)
while(1)
//通過while迴圈來實現從共享記憶體中讀取資料
shmdt(shm_start);
//shmdt是用來解除我們的記憶體對映,引數是我們共享記憶體的位址空間
shmctl(shmid,ipc_rmid,null);
//shmctl是來刪除我們建立的共享記憶體
//第乙個引數shmid是我們的描述符,第二個引數就代表著刪除,第三個引數用來接收共享記憶體描述的資訊,不關係就傳入null
Ubuntu下Linux程序間通訊 共享記憶體
linux提供了多種程序間通訊的方法,常見有管道 匿名 fifo 有名管道 訊息佇列 訊號量 共享記憶體,socket通訊。linux程序間通訊 匿名管道 linux程序間通訊 fifo 有名管道 linux程序間通訊 訊息佇列 linux程序間通訊 訊號量 linux程序間通訊 共享記憶體 5.共...
Linux高階程式設計基礎 程序間通訊之共享記憶體
建立共享記憶體,寫程序每隔2秒向記憶體寫入一次 hello world 如果結束寫操作,則寫程序寫入 end 讀程序從共享記憶體讀取資料,並列印。直到讀到 end 為止。這是寫程序 include include include include include include include inc...
Linux程序間通訊 共享記憶體
共享記憶體是執行在同一臺機器上的程序間通訊最快的方式,因為資料不需要在不同的程序間複製。通常由乙個程序建立一塊共享記憶體區,其餘程序對這塊記憶體區進行讀寫。共享記憶體往往與其它通訊機制,如訊號量結合使用,來達到程序間的同步及互斥。首先要用的函式是shmget,它獲得乙個共享儲存識別符號。i nclu...