c++ - 检查 Boost Interprocess managed_shared_memory 是否已经存在?
问题描述
有没有办法(除了 try-catch)来确定boost::interprocess:managed_shared_memory
具有特定名称的区域是否已经存在?
我知道如果我在 managed_shared_memory 区域内分配一个进程间向量,我可以使用 managed_shared_memory::find() 检查它是否存在,但似乎没有办法检查 managed_shared_memory 区域本身是否存在。
解决方案
您可以将构造函数与boost::interprocess::open_or_create
.
如果您想知道两者中的哪一个发生了,您可以使用,boost::interprocess::open_only
或者boost::interprocess::create_only
但您将在顶部添加“外部”同步:c++ Synchronize shared memory when reading
推荐阅读
- java - 如果缺少 jar,使用“jpackage”创建的可执行文件会静默失败
- c# - 我的 Xaml cs 文件找不到我的 xaml 文本框 UWP
- bash - 在 bash 中回显的函数中返回值
- rstudio - Rstudio:鼠标跟随焦点?
- amazon-web-services - 避免在 AWS Lambda 中花费等待时间
- c++ - 与 Rust 的 include_str 等效的 C++ 宏
- flutter - 为什么颤动中的文本小部件不显示字母和数字的组合
- python - 迭代/循环所有列
- python - 在 Python Array 与 Numpy Array 中产生不同输出的排序方法
- substrate - 使用自定义 Substrate 节点名称(Substrate FRAME 托盘 + Polkadot/Substrate 前端)