为啥我不能使用 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 设置从一个进程通过另一个进程创建的一些内存?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能使用开机功能?

为啥我不能使用 AsyncMethodCaller?

为啥我不能使用 composer 创建 Laravel 项目?

为啥我不能在这里使用 mockResolvedValue?

为啥我不能使用 RijndaelManaged 解密数据?

为啥我不能使用命令前缀?