创建共享内存:
#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"); }