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

 

posted @ 2014-05-13 21:16  zzyoucan  阅读(606)  评论(0编辑  收藏  举报