{"id":1426,"date":"2018-06-20T20:11:18","date_gmt":"2018-06-20T12:11:18","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=1426"},"modified":"2018-06-20T20:11:18","modified_gmt":"2018-06-20T12:11:18","slug":"%e3%80%90boost%e3%80%91interprocess-%e5%85%b1%e4%ba%ab%e5%86%85%e5%ad%98%e3%80%81%e6%96%87%e4%bb%b6%e6%98%a0%e5%b0%84%e4%bb%8b%e7%bb%8d","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/1426","title":{"rendered":"\u3010Boost\u3011Interprocess &#8211; \u5171\u4eab\u5185\u5b58\u3001\u6587\u4ef6\u6620\u5c04\u4ecb\u7ecd"},"content":{"rendered":"<div class=\"article-title-box\">\n<h1 class=\"title-article\">\u3010Boost\u3011Interprocess &#8211; \u5171\u4eab\u5185\u5b58\u3001\u6587\u4ef6\u6620\u5c04\u4ecb\u7ecd<\/h1>\n<\/div>\n<div class=\"article-info-box\">\n<div class=\"article-bar-top d-flex\"><span class=\"time\">2016\u5e7402\u670817\u65e5 16:39:35<\/span><\/p>\n<div class=\"float-right\"><span class=\"read-count\">\u9605\u8bfb\u6570\uff1a4023<\/span><\/div>\n<\/div>\n<\/div>\n<article>\n<div id=\"article_content\" class=\"article_content clearfix csdn-tracking-statistics\" data-pid=\"blog\" data-mod=\"popu_307\" data-dsm=\"post\">\n<div class=\"htmledit_views\">\n<p><strong><br \/>\n\u4e00\u3001\u7528\u6cd5\u4ecb\u7ecd<\/strong><\/p>\n<p>\u901a\u8fc7Interprocess\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5728\u5171\u4eab\u5185\u5b58\u3001\u6587\u4ef6\u6620\u5c04\u4e2d\u4fdd\u5b58vector\u3001map\u7b49STL\u5bf9\u8c61\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u7c7b\uff0c\u5b98\u65b9\u6587\u6863\u4ecb\u7ecd\u7684\u4e5f\u5f88\u8be6\u7ec6\u4e86\uff0c\u4e0b\u9762\u662f\u51e0\u4e2a\u7cbe\u7b80\u7684\u793a\u4f8b\u3002<\/p>\n<ul>\n<li><strong>\u793a\u4f8b\uff1a\u57fa\u4e8e\u6587\u4ef6\u6620\u5c04\u7684Map\u4f7f\u7528<\/strong><\/li>\n<\/ul>\n<div class=\"dp-highlighter bg_cpp\">\n<div class=\"bar\">\n<div class=\"tools\"><b>[cpp]<\/b>\u00a0<a class=\"ViewSource\" title=\"view plain\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">view plain<\/a><span data-mod=\"popu_168\">\u00a0<a class=\"CopyToClipboard\" title=\"copy\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_1\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_1\" data-mce-fragment=\"1\"><\/embed><\/div>\n<div><embed id=\"ZeroClipboardMovie_6\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_6\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol class=\"dp-cpp\" start=\"1\">\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/managed_mapped_file.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/containers\/map.hpp&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/allocators\/allocator.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;functional&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;cstdlib&gt;\u00a0\/\/std::system<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;utility&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;stdio.h&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;stdlib.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;exception&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/mman.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/stat.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\u00a0\u00a0For\u00a0mode\u00a0constants\u00a0*\/<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;fcntl.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\u00a0\u00a0For\u00a0O_*\u00a0constants\u00a0*\/<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;string&gt;<\/span><\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">using<\/span>\u00a0<span class=\"keyword\">namespace<\/span>\u00a0boost::interprocess;<\/li>\n<li class=\"\"><span class=\"keyword\">using<\/span>\u00a0std::string;<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\"><span class=\"keyword\">class<\/span>\u00a0Item<\/li>\n<li class=\"alt\">{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">public<\/span>:<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0Item(){}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0~Item(){}<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0id;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0size;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0string\u00a0name;<\/li>\n<li class=\"alt\">};<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0<span class=\"datatypes\">int<\/span>\u00a0KeyType;<\/li>\n<li class=\"\"><span class=\"keyword\">typedef<\/span>\u00a0Item\u00a0MappedType;<\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0std::pair&lt;<span class=\"keyword\">const<\/span>\u00a0<span class=\"datatypes\">int<\/span>,\u00a0Item&gt;\u00a0ValueType;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0allocator&lt;ValueType,\u00a0managed_mapped_file::segment_manager&gt;\u00a0ShmemAllocator;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0map&lt;KeyType,\u00a0MappedType,\u00a0std::less&lt;KeyType&gt;,\u00a0ShmemAllocator&gt;\u00a0MyMap;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"datatypes\">int<\/span>\u00a0main()<\/li>\n<li class=\"\">{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">try<\/span>\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0init<\/span><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0managed_mapped_file\u00a0segment(open_or_create,\u00a0<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>,\u00a065536);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MyMap\u00a0*mymap\u00a0=\u00a0segment.find&lt;MyMap&gt;(<span class=\"string\">&#8220;MyMap&#8221;<\/span>).first;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">if<\/span>\u00a0(mymap\u00a0==\u00a0NULL)<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">const<\/span>\u00a0ShmemAllocator\u00a0alloc_inst\u00a0(segment.get_segment_manager());<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mymap\u00a0=\u00a0segment.construct&lt;MyMap&gt;(<span class=\"string\">&#8220;MyMap&#8221;<\/span>)\u00a0(std::less&lt;<span class=\"datatypes\">int<\/span>&gt;(),\u00a0alloc_inst);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Item\u00a0v;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>(<span class=\"datatypes\">int<\/span>\u00a0i\u00a0=\u00a00;\u00a0i\u00a0&lt;\u00a0100;\u00a0++i){<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v.id\u00a0=\u00a0i;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mymap-&gt;insert(std::pair&lt;<span class=\"keyword\">const<\/span>\u00a0<span class=\"datatypes\">int<\/span>,\u00a0Item&gt;(i,\u00a0(Item)v));<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>\u00a0(MyMap::iterator\u00a0it\u00a0=\u00a0mymap-&gt;begin();\u00a0it\u00a0!=\u00a0mymap-&gt;end();\u00a0it++)\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;%d\u00a0&#8220;<\/span>,\u00a0it-&gt;second.id);<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;\\n&#8221;<\/span>);<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/file_mapping::remove(&#8220;SharedMemory&#8221;);<\/span><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">catch<\/span>\u00a0(<span class=\"keyword\">const<\/span>\u00a0std::exception\u00a0&amp;\u00a0e)\u00a0{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;Exception:%s\\n&#8221;<\/span>,\u00a0e.what());<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/file_mapping::remove(&#8220;SharedMemory&#8221;);<\/span><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">return<\/span>\u00a00;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">}<\/li>\n<\/ol>\n<\/div>\n<p>\u6267\u884c\u540e\u53ef\u4ee5\u770b\u5230\u5f53\u524d\u76ee\u5f55\u4e0b\u5df2\u521b\u5efa\u4e86\u5185\u5b58\u6587\u4ef6\u3002<\/p>\n<div class=\"dp-highlighter bg_plain\">\n<div class=\"bar\">\n<div class=\"tools\"><b>[plain]<\/b>\u00a0<a class=\"ViewSource\" title=\"view plain\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">view plain<\/a><span data-mod=\"popu_168\">\u00a0<a class=\"CopyToClipboard\" title=\"copy\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_2\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_2\" data-mce-fragment=\"1\"><\/embed><\/div>\n<div><embed id=\"ZeroClipboardMovie_7\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_7\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol start=\"1\">\n<li class=\"alt\">[root@SH-todo-1412181717\u00a0\/home\/derrywang\/boost\/boost_1_60_0\/demo]#\u00a0.\/interprocess_map_file<\/li>\n<li class=\"\">0\u00a01\u00a02\u00a03\u00a04\u00a05\u00a06\u00a07\u00a08\u00a09\u00a010\u00a011\u00a012\u00a013\u00a014\u00a015\u00a016\u00a017\u00a018\u00a019\u00a020\u00a021\u00a022\u00a023\u00a024\u00a025\u00a026\u00a027\u00a028\u00a029\u00a030\u00a031\u00a032\u00a033\u00a034\u00a035\u00a036\u00a037\u00a038\u00a039\u00a040\u00a041\u00a042\u00a043\u00a044\u00a045\u00a046\u00a047\u00a048\u00a049\u00a050\u00a051\u00a052\u00a053\u00a054\u00a055\u00a056\u00a057\u00a058\u00a059\u00a060\u00a061\u00a062\u00a063\u00a064\u00a065\u00a066\u00a067\u00a068\u00a069\u00a070\u00a071\u00a072\u00a073\u00a074\u00a075\u00a076\u00a077\u00a078\u00a079\u00a080\u00a081\u00a082\u00a083\u00a084\u00a085\u00a086\u00a087\u00a088\u00a089\u00a090\u00a091\u00a092\u00a093\u00a094\u00a095\u00a096\u00a097\u00a098\u00a099<\/li>\n<li class=\"alt\">[root@SH-todo-1412181717\u00a0\/home\/derrywang\/boost\/boost_1_60_0\/demo]#\u00a0ls\u00a0-al\u00a0SharedMemory<\/li>\n<li class=\"\">-rw-r&#8211;r&#8211;\u00a01\u00a0root\u00a0root\u00a065536\u00a0Feb\u00a017\u00a018:54\u00a0SharedMemory<\/li>\n<\/ol>\n<\/div>\n<ul>\n<li><strong>\u793a\u4f8b\uff1a\u57fa\u4e8e\u5171\u4eab\u5185\u5b58\u7684Map\u4f7f\u7528<\/strong><\/li>\n<\/ul>\n<div class=\"dp-highlighter bg_cpp\">\n<div class=\"bar\">\n<div class=\"tools\"><b>[cpp]<\/b>\u00a0<a class=\"ViewSource\" title=\"view plain\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">view plain<\/a><span data-mod=\"popu_168\">\u00a0<a class=\"CopyToClipboard\" title=\"copy\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_3\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_3\" data-mce-fragment=\"1\"><\/embed><\/div>\n<div><embed id=\"ZeroClipboardMovie_8\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_8\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol class=\"dp-cpp\" start=\"1\">\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/managed_shared_memory.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/managed_mapped_file.hpp&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/containers\/map.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/allocators\/allocator.hpp&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;functional&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;cstdlib&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;utility&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;sstream&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;stdio.h&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;stdlib.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;exception&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/mman.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/stat.h&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;fcntl.h&gt;\u00a0\u00a0<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;string&gt;<\/span><\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">using<\/span>\u00a0<span class=\"keyword\">namespace<\/span>\u00a0boost::interprocess;<\/li>\n<li class=\"\"><span class=\"keyword\">using<\/span>\u00a0std::string;<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\"><span class=\"keyword\">class<\/span>\u00a0Item<\/li>\n<li class=\"alt\">{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">public<\/span>:<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Item(){}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0~Item(){}<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0id;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0size;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string\u00a0name;<\/li>\n<li class=\"alt\">};<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0<span class=\"datatypes\">int<\/span>\u00a0KeyType;<\/li>\n<li class=\"\"><span class=\"keyword\">typedef<\/span>\u00a0Item\u00a0MappedType;<\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0std::pair&lt;<span class=\"keyword\">const<\/span>\u00a0<span class=\"datatypes\">int<\/span>,\u00a0Item&gt;\u00a0ValueType;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0allocator&lt;ValueType,\u00a0managed_shared_memory::segment_manager&gt;\u00a0ShmemAllocator;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0map&lt;KeyType,\u00a0MappedType,\u00a0std::less&lt;KeyType&gt;,\u00a0ShmemAllocator&gt;\u00a0MyMap;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"datatypes\">int<\/span>\u00a0main()<\/li>\n<li class=\"\">{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">try<\/span>\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0init<\/span><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0managed_shared_memory\u00a0segment(create_only,\u00a0<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>,\u00a065536);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">const<\/span>\u00a0ShmemAllocator\u00a0alloc_inst\u00a0(segment.get_segment_manager());<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MyMap\u00a0*\u00a0mymap\u00a0=\u00a0segment.construct&lt;MyMap&gt;(<span class=\"string\">&#8220;MyMap&#8221;<\/span>)\u00a0(std::less&lt;<span class=\"datatypes\">int<\/span>&gt;(),\u00a0alloc_inst);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Item\u00a0v;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>(<span class=\"datatypes\">int<\/span>\u00a0i\u00a0=\u00a00;\u00a0i\u00a0&lt;\u00a0100;\u00a0++i){<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v.id\u00a0=\u00a0i;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mymap-&gt;insert(std::pair&lt;<span class=\"keyword\">const<\/span>\u00a0<span class=\"datatypes\">int<\/span>,\u00a0Item&gt;(i,\u00a0(Item)v));<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>\u00a0(MyMap::iterator\u00a0it\u00a0=\u00a0mymap-&gt;begin();\u00a0it\u00a0!=\u00a0mymap-&gt;end();\u00a0it++)\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;%d\u00a0&#8220;<\/span>,\u00a0it-&gt;second.id);<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;\\n&#8221;<\/span>);<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shared_memory_object::remove(<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>);<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">catch<\/span>\u00a0(<span class=\"keyword\">const<\/span>\u00a0std::exception\u00a0&amp;\u00a0e)\u00a0{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;Exception:%s\\n&#8221;<\/span>,\u00a0e.what());<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shared_memory_object::remove(<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>);<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">return<\/span>\u00a00;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">}<\/li>\n<\/ol>\n<\/div>\n<ul>\n<li><strong>\u793a\u4f8b\uff1a\u57fa\u4e8e\u5171\u4eab\u5185\u5b58\u7684Vector\u4f7f\u7528<\/strong><\/li>\n<\/ul>\n<div class=\"dp-highlighter bg_cpp\">\n<div class=\"bar\">\n<div class=\"tools\"><b>[cpp]<\/b>\u00a0<a class=\"ViewSource\" title=\"view plain\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">view plain<\/a><span data-mod=\"popu_168\">\u00a0<a class=\"CopyToClipboard\" title=\"copy\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_4\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_4\" data-mce-fragment=\"1\"><\/embed><\/div>\n<div><embed id=\"ZeroClipboardMovie_9\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_9\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol class=\"dp-cpp\" start=\"1\">\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/managed_shared_memory.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/containers\/vector.hpp&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;boost\/interprocess\/allocators\/allocator.hpp&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;cstdlib&gt;\u00a0\/\/std::system<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;stdio.h&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;stdlib.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;exception&gt;<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/mman.h&gt;<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;sys\/stat.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\u00a0\u00a0For\u00a0mode\u00a0constants\u00a0*\/<\/span><\/li>\n<li class=\"\"><span class=\"preprocessor\">#include\u00a0&lt;fcntl.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/*\u00a0\u00a0For\u00a0O_*\u00a0constants\u00a0*\/<\/span><\/li>\n<li class=\"alt\"><span class=\"preprocessor\">#include\u00a0&lt;string&gt;<\/span><\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">using<\/span>\u00a0<span class=\"keyword\">namespace<\/span>\u00a0boost::interprocess;<\/li>\n<li class=\"\"><span class=\"keyword\">using<\/span>\u00a0std::string;<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\"><span class=\"keyword\">class<\/span>\u00a0Item<\/li>\n<li class=\"alt\">{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">public<\/span>:<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Item(){}<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0~Item(){}<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0id;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"datatypes\">int<\/span>\u00a0size;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string\u00a0name;<\/li>\n<li class=\"alt\">};<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0allocator&lt;Item,\u00a0managed_shared_memory::segment_manager&gt;\u00a0\u00a0ShmemAllocator;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"keyword\">typedef<\/span>\u00a0vector&lt;Item,\u00a0ShmemAllocator&gt;\u00a0MyVector;<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\"><span class=\"datatypes\">int<\/span>\u00a0main()<\/li>\n<li class=\"\">{<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">try<\/span>\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0init<\/span><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0managed_shared_memory\u00a0segment(create_only,\u00a0<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>,\u00a065536);<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">const<\/span>\u00a0ShmemAllocator\u00a0alloc_inst\u00a0(segment.get_segment_manager());<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MyVector\u00a0*myvector\u00a0=\u00a0segment.construct&lt;MyVector&gt;(<span class=\"string\">&#8220;MyVector&#8221;<\/span>)(alloc_inst);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0push_back<\/span><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Item\u00a0v;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>(<span class=\"datatypes\">int<\/span>\u00a0i\u00a0=\u00a00;\u00a0i\u00a0&lt;\u00a0100;\u00a0i++)\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v.id\u00a0=\u00a0i;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0myvector-&gt;push_back(v);<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v.name\u00a0=\u00a0<span class=\"string\">&#8220;hello&#8221;<\/span>;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"comment\">\/\/\u00a0loop<\/span><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MyVector\u00a0*myvector2\u00a0=\u00a0segment.find&lt;MyVector&gt;(<span class=\"string\">&#8220;MyVector&#8221;<\/span>).first;<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;vector\u00a0size:%d\\n&#8221;<\/span>,\u00a0myvector2-&gt;size());<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">for<\/span>\u00a0(<span class=\"datatypes\">int<\/span>\u00a0j\u00a0=\u00a00;\u00a0j\u00a0&lt;\u00a0myvector2-&gt;size();\u00a0j++)<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;%d\u00a0\u00a0&#8220;<\/span>,\u00a0(*myvector2)[j].id);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;\\n&#8221;<\/span>);<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shared_memory_object::remove(<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>);<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">catch<\/span>\u00a0(<span class=\"keyword\">const<\/span>\u00a0std::exception\u00a0&amp;\u00a0e)\u00a0{<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0printf(<span class=\"string\">&#8220;Exception:%s\\n&#8221;<\/span>,\u00a0e.what());<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shared_memory_object::remove(<span class=\"string\">&#8220;SharedMemory&#8221;<\/span>);<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0}<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0<span class=\"keyword\">return<\/span>\u00a00;<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">}<\/li>\n<\/ol>\n<\/div>\n<p>Makefile\u5982\u4e0b\uff0c\u56e0\u4e3ainterprocess\u5e93\u4e0d\u4f9d\u8d56\u5e93\uff0c\u6240\u4ee5\u5934\u6587\u4ef6\u53ea\u9700\u8981\u5305\u542bboost\u9876\u5c42\u76ee\u5f55\u5373\u53ef\uff0c\u4ec5\u4f9d\u8d56\u7cfb\u7edf\u5e93\u7f16\u8f91\u65f6\u9700\u8981\u6307\u5b9a-lrt.<\/p>\n<div class=\"dp-highlighter bg_plain\">\n<div class=\"bar\">\n<div class=\"tools\"><b>[plain]<\/b>\u00a0<a class=\"ViewSource\" title=\"view plain\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">view plain<\/a><span data-mod=\"popu_168\">\u00a0<a class=\"CopyToClipboard\" title=\"copy\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/details\/50681103#\">copy<\/a><\/span><\/p>\n<div><embed id=\"ZeroClipboardMovie_5\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_5\" data-mce-fragment=\"1\"><\/embed><\/div>\n<div><embed id=\"ZeroClipboardMovie_10\" src=\"https:\/\/csdnimg.cn\/public\/highlighter\/ZeroClipboard.swf\" type=\"application\/x-shockwave-flash\" width=\"16\" height=\"16\" align=\"middle\" name=\"ZeroClipboardMovie_10\" data-mce-fragment=\"1\"><\/embed><\/div>\n<\/div>\n<\/div>\n<ol start=\"1\">\n<li class=\"alt\">BIN\u00a0=\u00a0$(patsubst\u00a0%.cpp,%,$(wildcard\u00a0*.cpp))<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">INC\u00a0=\u00a0-I\u00a0..\/<\/li>\n<li class=\"\">LIB\u00a0=\u00a0-lrt<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">RED\u00a0=\u00a0\\\\e[1m\\\\e[31m<\/li>\n<li class=\"alt\">RESET\u00a0=\u00a0\\\\e[m<\/li>\n<li class=\"\">GREEN\u00a0=\u00a0\\\\e[1m\\\\e[32m<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">all:$(BIN)<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">%:%.cpp<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@echo\u00a0-e\u00a0&#8220;Make\u00a0$(GREEN)$@$(RESET)\u00a0begin&#8230;&#8230;\\c&#8221;<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0g++\u00a0-g\u00a0-pthread\u00a0-o\u00a0$@\u00a0$&lt;\u00a0$(INC)\u00a0$(LIB)<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@echo\u00a0-e\u00a0$(RED)&#8221;ok.&#8221;$(RESET)<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">clean:<\/li>\n<li class=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rm\u00a0$(BIN)<\/li>\n<li class=\"alt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@echo\u00a0&#8220;make\u00a0clean\u00a0done.&#8221;<\/li>\n<\/ol>\n<\/div>\n<p><strong>\u4e8c\u3001\u751f\u547d\u5468\u671f\u8bf4\u660e<\/strong><\/p>\n<p>\u673a\u5236\u4e0a\u548cLinux\u7cfb\u7edf\u662f\u4e00\u81f4\u7684\uff0c\u5206\u4e3a\u8fdb\u7a0b\u7ea7\uff08\u8fdb\u7a0b\u9000\u51fa\u9500\u6bc1\uff09\u3001\u5185\u6838\u7ea7\uff08\u7cfb\u7edf\u91cd\u542f\u9500\u6bc1\uff09\u3001\u6587\u4ef6\u7cfb\u7edf\u7ea7\uff08\u6587\u4ef6\u5220\u9664\u9500\u6bc1\uff09\uff0c\u8fd9\u91cc\u4e0d\u518d\u8d58\u8ff0\uff0c\u9644\u4e0a\u5b98\u65b9\u539f\u6587\u3002<br \/>\nOne of the biggest issues with interprocess communication mechanisms is the lifetime of the interprocess communication mechanism. It&#8217;s important to know when an interprocess communication mechanism disappears from the system. In<span class=\"bold\"><strong>Boost.Interprocess<\/strong><\/span>, we can have 3 types of persistence:<\/p>\n<div class=\"itemizedlist\">\n<ul class=\"itemizedlist\">\n<li class=\"listitem\"><span class=\"bold\"><strong>Process-persistence<\/strong><\/span>: The mechanism lasts until all the processes that have opened the mechanism close it, exit or crash.<\/li>\n<li class=\"listitem\"><span class=\"bold\"><strong>Kernel-persistence<\/strong><\/span>: The mechanism exists until the kernel of the operating system reboots or the mechanism is explicitly deleted.<\/li>\n<li class=\"listitem\"><span class=\"bold\"><strong>Filesystem-persistence<\/strong><\/span>: The mechanism exists until the mechanism is explicitly deleted.<\/li>\n<\/ul>\n<\/div>\n<p class=\"title\">Some native POSIX and Windows IPC mechanisms have different persistence so it&#8217;s difficult to achieve portability between Windows and POSIX native mechanisms.<span class=\"bold\"><strong>Boost.Interprocess<\/strong><\/span>\u00a0classes have the following persistence:<\/p>\n<p class=\"title\"><strong>Table\u00a014.1.\u00a0Boost.Interprocess Persistence Table<\/strong><\/p>\n<table class=\"table\" summary=\"Boost.Interprocess Persistence Table\" width=\"742\">\n<colgroup>\n<col \/>\n<col \/><\/colgroup>\n<thead>\n<tr>\n<th>Mechanism<\/th>\n<th>Persistence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Shared memory<\/td>\n<td>Kernel or Filesystem<\/td>\n<\/tr>\n<tr>\n<td>Memory mapped file<\/td>\n<td>Filesystem<\/td>\n<\/tr>\n<tr>\n<td>Process-shared mutex types<\/td>\n<td>Process<\/td>\n<\/tr>\n<tr>\n<td>Process-shared semaphore<\/td>\n<td>Process<\/td>\n<\/tr>\n<tr>\n<td>Process-shared condition<\/td>\n<td>Process<\/td>\n<\/tr>\n<tr>\n<td>File lock<\/td>\n<td>Process<\/td>\n<\/tr>\n<tr>\n<td>Message queue<\/td>\n<td>Kernel or Filesystem<\/td>\n<\/tr>\n<tr>\n<td>Named mutex<\/td>\n<td>Kernel or Filesystem<\/td>\n<\/tr>\n<tr>\n<td>Named semaphore<\/td>\n<td>Kernel or Filesystem<\/td>\n<\/tr>\n<tr>\n<td>Named condition<\/td>\n<td>Kernel or Filesystem<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/article>\n<div class=\"article-bar-bottom\">\n<div class=\"tags-box\"><span class=\"label\">\u4e2a\u4eba\u5206\u7c7b\uff1a<\/span>\u00a0<a class=\"tag-link\" href=\"https:\/\/blog.csdn.net\/nellson\/article\/category\/321093\" target=\"_blank\" rel=\"noopener\">C++<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u3010Boost\u3011Interprocess <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-1426","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1426","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=1426"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1426\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=1426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=1426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=1426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}