为啥我不能使用 Boost.Interprocess 设置从一个进程通过另一个进程创建的一些内存?
Posted
技术标签:
【中文标题】为啥我不能使用 Boost.Interprocess 设置从一个进程通过另一个进程创建的一些内存?【英文标题】:Why can't I set some memory created from one process through another using Boost.Interprocess?为什么我不能使用 Boost.Interprocess 设置从一个进程通过另一个进程创建的一些内存? 【发布时间】:2019-06-20 15:16:54 【问题描述】:这是服务器:
这里是客户端:
我创建了两个独立的 C++ 控制台应用程序,一个称为服务器,另一个称为客户端。服务器创建并共享内存,客户端主要读取它,但设置一些信令服务器退出。尽管客户端与正确的内存检查一起正确存在,但服务器永远无法读取客户端设置的值,因此永远不存在! 请指教。
【问题讨论】:
【参考方案1】:现在一切正常。这里的内存大小的语法和理解存在问题:
这个:
*(mem + region.get_size()) = '*';
应该是这样的:
mem[region.get_size() - 1] = '*';
【讨论】:
以上是关于为啥我不能使用 Boost.Interprocess 设置从一个进程通过另一个进程创建的一些内存?的主要内容,如果未能解决你的问题,请参考以下文章