C ++多进程共享内存实现

Posted

技术标签:

【中文标题】C ++多进程共享内存实现【英文标题】:C++ multiple process shared memory implementation [closed] 【发布时间】:2011-05-29 18:44:20 【问题描述】:

这就是我想要实现的目标。

我希望 program1 创建一个共享内存段,用于存储各种数组。

然后,我希望 program2 读取数组并修改它们。

这听起来很简单,但由于某种原因,我无法在网上找到一个示例来说明这是如何完成的。我发现的每个示例都使用一个程序(例如初始化、读取和写入都由 program1 完成)。

如果有人可以在这里提供一个示例,我相信这对几乎所有想要在 C++ 中使用 IPC 的人来说都是非常有益的。

【问题讨论】:

第一个谷歌点击“共享内存”+示例(google.co.uk/…)有一个双进程示例。 那篇文章是 1999 年的,看起来很过时了。 在哪些方面显得过时了?你有没有发现任何具体的问题? 这篇文章可能仍然有效,我只是想知道在过去 12 年中是否有更现代的方法可能已经开发出来。 明白。但是任何提供 IPC/SHM 的库本质上都是这种低级机制的包装器。 【参考方案1】:

Boost.Interprocess 有一个guide for the impatient。

【讨论】:

以上是关于C ++多进程共享内存实现的主要内容,如果未能解决你的问题,请参考以下文章

linux共享内存和mmap的区别

使用命名共享内存的 C++ 问题

多进程取消链接共享内存,需要只有在所有进程退出时才应该取消链接共享内存

Python - 多处理和共享内存

37. Python 多进程锁 多进程共享内存

使用共享内存(mmap)和信号量的进程间通信