一、傳送端建立共享區域,並寫入內容:
//1 先刪除之前建立的
shared_memory_object::remove("mysharedmemory_name");
//2 建立共享記憶體段
shared_memory_object shm(create_only, "mysharedmemory_name", read_write);
//3 設定共享記憶體大小
shm.truncate(100);
//4 對映共享記憶體片段
//5 初始化為0
std::memset(region.get_address(), 0, region.get_size());
//6 往記憶體裡寫入資料
string *strtest = static_cast(region.get_address());
*strtest = "hello world";
二、另乙個程序讀取記憶體
//1 讀取共享記憶體
shared_memory_object shm(open_only, "mysharedmemory_name", read_only);
//2 對映共享記憶體
//3 檢查共享記憶體是否被初始化為1
string* strread = static_cast(region.get_address());
程序間共享記憶體
位於系統的交換分割槽 include incude int shmget key t key,size t size,int shm ipc excl ipc creat一起使用可確保共享記憶體已存在時返回錯誤 void shmat int shm id,const void shm addr,in...
程序間通訊 共享記憶體
下面是自己寫的乙個簡單的共享記憶體的程序間通訊的例子。共享記憶體是用於程序間大量資料共享的一種方法。include include include include include include int main if buf1 shmat shmid,0,0 void 1 strcpy buf1,...
linux 程序間共享記憶體
可以採用sysv的shmget shmat 實現。但是我更喜歡shm open mmap 更簡單。writer.c include include include include include include include include struct ofs stat int main voi...