原創 boost共享記憶體,程序間通訊例項

2021-10-03 13:23:12 字數 724 閱讀 9805

一、傳送端建立共享區域,並寫入內容:

//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...