发送端:
#define BOOST_DATE_TIME_NO_LIB
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>
using namespace boost::interprocess;
using namespace std;
int main()
{
//1 先删除之前创建的
shared_memory_object::remove("MySharedMemory_Name");
//2 创建共享内存段
shared_memory_object shm(create_only, "MySharedMemory_Name", read_write);
//3 设置共享内存大小
shm.truncate(100);
//4 映射共享内存片段
mapped_region region(shm, read_write);
//5 初始化为0
std::memset(region.get_address(), 0, region.get_size());
//6 往内存里写入数据
string *strTest = static_cast<string*>(region.get_address());
*strTest = "hello world";
cout << "发送完成" << endl;
getchar();
return 0;
}
接收端:
#define BOOST_DATE_TIME_NO_LIB
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>
using namespace boost::interprocess;
using namespace std;
int main()
{
//1 读取共享内存
shared_memory_object shm(open_only, "MySharedMemory_Name", read_only);
//2 映射共享内存
mapped_region region(shm, read_only);
//3 获取数据
string* strRead = static_cast<string*>(region.get_address());
cout << *strRead << endl;
getchar();
return 0;
}
参考链接:
https://blog.csdn.net/u014385680/article/details/104682269
原文:https://www.cnblogs.com/rcg714786690/p/13247165.html