共享記憶體例子

2021-09-30 10:49:14 字數 1257 閱讀 7714

共享記憶體是lunix 系統中最底層的通訊機制,也是最快速的通訊機制

。共享記憶體通過兩個或多個程序共享同一塊記憶體區域來實現程序間的通訊。通常是由乙個程序建立一塊共享

記憶體區域,然後多個程序可以對其進行訪問,乙個程序將要傳出的資料存放到共享記憶體中,另乙個或多個程序則直接從共享記憶體中讀取資料。因此這種通訊方式是最高效的程序間通訊方式。但實際的問題在於,當兩個或多個程序使用共享記憶體進行通訊時,同步問題的解決顯得尤為重要,否則就會造成因不同程序同時讀寫一塊共享記憶體中的資料而發生混亂。在通常的情況下,通過使用訊號量來實現程序的同步。

以上兩個程式是乙個程序間通訊的例子。這兩個程式分別在不同的程序中執行,使用了共享記憶體進行通訊。b從鍵盤讀入資料,存放在共享記憶體中。a則從共享記憶體中讀取資料,顯示到螢幕上。由於沒有使兩個程序同步,顯示的內容將是雜亂無章的,對這一問題的處理將在進一步學習有關同步的操作之後完成。

例項b程式負責向共享記憶體中寫入資料,a程式負責從記憶體中讀出共享的資料,它們之間並沒有新增同步操作。

Linux 共享記憶體例子

linux環境下程序之間通過記憶體共享實現通訊的方式有很多種。1.shm 這種函式,可以實現在不同程序之間 尤其是非父母程序之間 進行記憶體共享 write.c檔案 include include include include include include include include int...

共享記憶體很好的例子, 可直接執行

轉子 include include include include include include include define shm size 1024 用共享記憶體讀寫資料 讀資料到共享記憶體 int shmctl int shmid,int cmd,struct shmid ds buf ...

Linux共享記憶體及共享記憶體API

共享記憶體區是最快的ipc 程序間通訊 形式。用共享記憶體從伺服器拷貝檔案資料到客戶端 共享記憶體基本api include include 1.int shmget key t key,size t size,int shm 功能 用來建立共享記憶體 key 是這個共享記憶體段的名字 size 共...