共享記憶體對映(linux程式與執行緒學習筆記)
共享記憶體對映 - shmat
#include<sys/ipc.h>
#include<sys/shm.h>
void *shmat(int shmid,const void *shmaddr,int shmflg);
成功時返回對映後的地址,失敗時返回(void *)-1
shmid 要對映的共享記憶體id
shmaddr 對映後的地址,NULL表示由系統自動對映
shmflg 標誌位 0表示可讀寫;SHM_RDONLY表示只讀
共享記憶體撤銷對映 - shmdt
#include<sys/ipc.h>
#include<sys/shm.h>
int shmdt(void *shmaddr);
成功時返回0,失敗時返回EOF
不使用共享記憶體時應撤銷對映
程式結束時自動撤銷
共享記憶體控制 - shmctl
#include<sys/ipc.h>
#include<sys/shm.h>
int shmctl(int shmid,int cmd,struct shmid_ds *buf);
成功時返回0,失敗時返回EOF
shmid 要操作的共享記憶體的id
cmd 要執行的操作 IPC_STAT IPC_SET IPC_RMID
buf 儲存或設定共享記憶體屬性的地址
共享記憶體 - 注意事項
每塊共享記憶體大小有限制
ipcs -l
共享內傳刪除的時間點
shmct(shmid,IPC_RMID,NULL);//新增刪除標記
nattach變成0時真正刪除
相關文章
- Linux程式執行緒學習筆記Linux執行緒筆記
- 程式間通訊(linux程式與執行緒學習筆記)Linux執行緒筆記
- Linux 記憶體管理:記憶體對映Linux記憶體
- iOS執行緒學習筆記iOS執行緒筆記
- 多執行緒學習筆記執行緒筆記
- JAVA記憶體對映檔案實現多執行緒下載Java記憶體執行緒
- Erlang學習筆記(五)記錄與對映組筆記
- OS學習筆記二: 程式執行緒模型筆記執行緒模型
- 記憶體對映記憶體
- Linux程式執行緒學習筆記:程式間通訊 之 管道Linux執行緒筆記
- Java 多執行緒學習筆記Java執行緒筆記
- java學習筆記--多執行緒Java筆記執行緒
- Java學習筆記之執行緒Java筆記執行緒
- 多執行緒學習筆記 (轉)執行緒筆記
- 記憶體池、程式池、執行緒池記憶體執行緒
- mmap記憶體對映記憶體
- C# .Net 多程式同步 通訊 共享記憶體 記憶體對映檔案 Memory MappedC#記憶體APP
- Python學習筆記 - 多執行緒Python筆記執行緒
- Java多執行緒學習筆記(自用)Java執行緒筆記
- C#多執行緒學習筆記C#執行緒筆記
- java學習筆記.04——執行緒池Java筆記執行緒
- Java 多執行緒學習筆記(三)-守護執行緒Java執行緒筆記
- Java 執行緒記憶體模型Java執行緒記憶體模型
- C# 多執行緒學習筆記 – 1C#執行緒筆記
- Java多執行緒學習筆記(二) (轉)Java執行緒筆記
- Java併發程式設計學習筆記----執行緒池Java程式設計筆記執行緒
- Mybatis學習筆記(5)-高階對映之多對多對映MyBatis筆記
- linux共享記憶體Linux記憶體
- Java多執行緒記憶體模型Java執行緒記憶體模型
- SGA與共享記憶體記憶體
- Mybatis學習筆記(4)-高階對映之一對多對映MyBatis筆記
- Mybatis學習筆記(3)—高階對映之一對一對映MyBatis筆記
- 深入理解Java的堆記憶體和執行緒記憶體Java記憶體執行緒
- Python學習筆記|Python之執行緒Python筆記執行緒
- JAVA學習筆記之 多執行緒賣票Java筆記執行緒
- 執行緒通訊機制:共享記憶體 VS 訊息傳遞執行緒記憶體
- Java 多執行緒 學習筆記(二)停止執行緒的幾種方法Java執行緒筆記
- Linux共享記憶體(二)Linux記憶體