共享記憶體 Shared Memory

2021-09-24 20:57:40 字數 911 閱讀 3326

原理

共享記憶體介面

# pathname 路徑

# projectid 0~255

# 建立key表示,標識系統的唯一ipc資源

key_t ftok

(pathname, projectid)

# key ftok生成

# size 申請共享記憶體的大小

# flag 標識

# 新建立的共享記憶體,使用ipc_creat | ipc_excl |

066# 已經存在的使用, ipc_create 或 0

# 失敗返回-

1int

shmget

(key_t key, size_t size,

int shm***)

# shmid 共享儲存段識別符號

# 讀取方式,預設為讀寫,shm_rdonly唯讀

# 返回值,共享儲存段的指標

void

*shmat

(int shmid,

const

void

* shmaddr,

int shm***)

# shmaddr 掛接後的返回的位址

# 返回值:成功返回0

intshmdt

(const

void

* shmaddr)

# shmid 工程儲存段識別符號

# 指定執行操作 ,設定 ipc_rmid表示可以刪除共享記憶體

# 成功返回0

intshmctl

(int shmid,

int cmd,

struct shmid_ds,buffer)

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

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

mysql共享記憶體 MySQL全域性共享記憶體介紹

前言 全域性共享記憶體則主要是 mysql instance mysqld程序 以及底層儲存引擎用來暫存各種全域性運算及可共享的暫存資訊,如儲存查詢快取的 query cache,快取連線線程的 thread cache,快取表檔案控制代碼資訊的 table cache,快取二進位制日誌的 binl...

mysql共享記憶體 MySQL全域性共享記憶體介紹

前言 全域性共享記憶體則主要是 mysql instance mysqld程序 以及底層儲存引擎用來暫存各種全域性運算及可共享的暫存資訊,如儲存查詢快取的 query cache,快取連線線程的 thread cache,快取表檔案控制代碼資訊的 table cache,快取二進位制日誌的 binl...