现在的位置: 首页 > 综合 > 正文

boost之Interprocess库,进程间通讯库之共享内存

2018年10月05日 ⁄ 综合 ⁄ 共 1048字 ⁄ 字号 评论关闭

创建共享内存:

#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");
}

抱歉!评论已关闭.