仅使用本机 C++ 操作为多个进程创建共享内存? [关闭]

Posted

技术标签:

【中文标题】仅使用本机 C++ 操作为多个进程创建共享内存? [关闭]【英文标题】:Create shared memory for several processes by using only native C++ operations? [closed] 【发布时间】:2013-05-18 12:45:18 【问题描述】:

如何仅使用本机 C++ 操作来分配可从多个进程访问的共享内存?或者我应该像在互斥锁和信号量等线程间同步对象的情况下那样使用我的操作系统 API? (我的意思是你不能用 bool 代替 mutex。操作系统有特定的类型来组织同步。)

【问题讨论】:

您甚至无法使用本机 C++ 操作创建进程... 【参考方案1】:

“仅本地 C++”中没有“共享内存”甚至“进程”的概念。这些必然是特定于平台的概念。

您可以尝试Boost's Interprocess library 以获得一些有用的抽象。

【讨论】:

【参考方案2】:

基本上,您需要使用 OS API。但是有一些跨平台库(例如 Boost)可以实现对共享内存的访问。

【讨论】:

以上是关于仅使用本机 C++ 操作为多个进程创建共享内存? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从一个进程创建多个共享内存

linux下通过shmget创建的共享内存,是属于用户空间还是内核空间?

Linux中多个进程使用文件指针读取文件时是不是使用共享虚拟内存?

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

C++ 和 Java 进程之间的共享内存

在 C 语言中使用 POSIX 在多个进程(不是线程,仅进程)之间共享二进制信号量