首页 > 代码库 > boost::interprocess(1)
boost::interprocess(1)
发送端:
#include <iostream> #include <windows.h> #include <string> using namespace std; #include <boost/interprocess/managed_shared_memory.hpp> #include <boost/interprocess/mapped_region.hpp> #include <thread> using namespace boost::interprocess; int num = 0; mapped_region *mp_r; void funs() { while (1) { num ++; memcpy(mp_r->get_address(), &num, sizeof(int)); mp_r->get_address(); Sleep(500); } } int main(int argc, char*argv[]) { shared_memory_object share_obj(create_only, "named_obj", read_write); share_obj.truncate(sizeof(int)); mp_r = new mapped_region(share_obj, read_write); std::thread th(funs); th.detach(); getchar(); return 0; }
接收端:
#include <iostream> #include <string> #include <windows.h> using namespace std; #include <boost/interprocess/managed_shared_memory.hpp> #include <boost/interprocess/mapped_region.hpp> #include <thread> using namespace boost::interprocess; mapped_region* mp_r; void fung() { while (1) { int num = 0; memcpy(&num, static_cast<char*>(mp_r->get_address()), sizeof(int)); cout<<num<<endl; Sleep(500); } } 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 mp_r = new mapped_region(share_obj, read_only); std::thread th(fung); th.detach(); getchar(); //remove shared memory object shared_memory_object::remove("named_obj"); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。