列出名为托管共享内存的速推器的名称
List names of boost named managed shared memory
我正在使用提升managed_shared_memory。我正在按名称创建。
例如:managed_shared_memory段(open_only,单名);
在自己的段中,我可以列出所有现有对象(由 Segment::construct 创建)。
但是是否可以获取现有细分的列表?(例如,避免双重命名...
如(伪):
boost::interprocess::list_existing_segments
如果可能,请解释一下。如果没有,请好心确认。
问候早咬
但是是否可以获取现有细分的列表?
给予足够的特权,可能是的。然而,这不是Boost的重点(使用Process Explorer等工具来检查系统细节;在linux上,ls /dev/shm
通常会有所帮助)。¹
(例如,避免双重命名...
这是不可行的,因为此时你只会得到一场比赛。一旦您"确定"给定名称尚未使用,它可能会同时由系统中的许多其他进程之一创建。所以你的检查结果是没有用的。
您不能通过进程间同步来对冲此问题,因为 (catch-22) 相同的问题适用于用于该同步的同步对象。
简而言之:您只能尝试创建并注意到它失败了。
¹ 同样,Boost 并不关注低级硬件访问,而是抽象出可移植的更高级别的接口
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 多个"常量引用"变量可以共享同一个内存吗?
- 使用共享指针时,从共享指针本身释放内存的机制是什么
- 字符串共享内存映射的向量
- CUDA 使用共享内存平铺 3D 卷积实现
- 共享内存:MapViewOfFile 返回错误 5
- 在共享缓冲区内存中创建 ::std::string 对象
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错
- Directx 12 :在两个进程之间共享图形内存
- 有没有办法列出所有共享内存对象的名称?
- 子进程更新共享 mmap 内存,但父进程没有更改
- C++线程之间的内存共享
- 使用Windows共享内存共享小数据
- 更有效地使用fork()和写时复制内存共享
- 从托管代码到非托管代码跨共享内存共享整数数组
- 通过内存共享c++对象
- 内存共享;继承;基实例和派生实例;c++
- Matlab与c++在MEX中的内存共享
- 跨共享内存共享 std::字符串