共享記憶體對映(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執行緒筆記
- Python學習筆記 - 多執行緒Python筆記執行緒
- Java 多執行緒學習筆記Java執行緒筆記
- [Linux]共享記憶體Linux記憶體
- linux記憶體管理(八)- 反向對映RMAPLinux記憶體
- Java 執行緒記憶體模型Java執行緒記憶體模型
- Python學習筆記|Python之執行緒Python筆記執行緒
- Java多執行緒學習筆記(自用)Java執行緒筆記
- Linux共享記憶體(二)Linux記憶體
- Java併發程式設計學習筆記----執行緒池Java程式設計筆記執行緒
- C# 多執行緒學習筆記 – 1C#執行緒筆記
- Java多執行緒記憶體模型Java執行緒記憶體模型
- Linux程式間通訊之共享記憶體Linux記憶體
- 深入理解Java的堆記憶體和執行緒記憶體Java記憶體執行緒
- Linux 學習筆記--程式Linux筆記
- Linux共享記憶體的管理Linux記憶體
- 1、多執行緒同步——CPU、core核、執行緒、記憶體執行緒記憶體
- Thinking in Java---多執行緒學習筆記(2)ThinkingJava執行緒筆記
- Java多執行緒之記憶體模型Java執行緒記憶體模型
- Linux系統程式設計之命名管道與共享記憶體Linux程式設計記憶體
- 併發程式設計之volatile與JMM多執行緒記憶體模型程式設計執行緒記憶體模型
- linux mmap應用與驅動共享記憶體Linux記憶體
- windows核心程式設計--記憶體對映檔案Windows程式設計記憶體
- Linux:深入淺出 Linux 共享記憶體Linux記憶體
- Solidity語言學習筆記————16、對映MappingSolid筆記APP
- 多執行緒筆記執行緒筆記
- (三)Java併發學習筆記–執行緒封閉Java筆記執行緒
- C# 使用執行緒池佇列(學習筆記)C#執行緒佇列筆記
- Thinking in Java--Java多執行緒學習筆記(1)ThinkingJava執行緒筆記
- 使用記憶體對映檔案(mmap)記憶體
- Linux 程式設計1:深入淺出 Linux 共享記憶體Linux程式設計記憶體
- Linux 學習筆記--程式管理Linux筆記
- Linux上執行記憶體中的指令碼和程式Linux記憶體指令碼
- JVM學習筆記——自動記憶體管理JVM筆記記憶體
- 多程式之間的執行緒利用XSI IPC共享記憶體分配互斥量進行同步執行緒記憶體
- 【JVM學習筆記】垃圾收集器與記憶體分配策略JVM筆記記憶體
- dotnet學習筆記-專題01-非同步與多執行緒-01筆記非同步執行緒