创建共享内存:
#include <iostream>
#include <string>
using namespace std;
#include <boost/interprocess/managed_shared_memory.hpp>
#include <boost/interprocess/mapped_region.hpp>
using namespace boost::interprocess;
int main(int argc, char*argv[])
{
//create shared memory object
shared_memory_object share_obj(create_only, "named_obj", read_write);
//set the size of the shared memory
share_obj.truncate(1024);
//map the shared memory to current process
mapped_region mmap(share_obj, read_write);
//access the mapped resion
strcpy(static_cast<char*>(mmap.get_address()), "Hello world!");
return 0;
}
读取共享内存:
#include <iostream>
#include <string>
using namespace std;
#include <boost/interprocess/managed_shared_memory.hpp>
#include <boost/interprocess/mapped_region.hpp>
using namespace boost::interprocess;
void main(int argc, char *argv[])
{
//open shared memory object
shared_memory_object share_obj(open_only, "named_obj", read_only);
//map the shared memory object to current process
mapped_region mmap(share_obj, read_only);
cout<<static_cast<char*>(mmap.get_address())<<endl;
//remove shared memory object
shared_memory_object::remove("named_obj");
}