gpt4 book ai didi

c++ - 如何获取 boost::interprocess::managed_shared_memory 的名称

转载 作者:行者123 更新时间:2023-11-30 03:00:21 25 4
gpt4 key购买 nike

我创建了一个具有名称和大小的 managed_shared_memory 对象。之后,我想再次获得这个名字。我该怎么做呢?我希望有一个像 get_name 或类似的函数,但我找不到。

#include <boost/interprocess/managed_shared_memory.hpp>

int main()
{
using namespace boost::interprocess;
managed_shared_memory shm(open_or_create,"MySharedMemory", 65536);

// The problem how the get the name out of the
std::string name = shm.get_name(); // does not exist
std::string name = shm.get_device().get_name(); // is not accessible

return 0;
}

最佳答案

我子类化了 managed_shared_memory 并将名称保存在一个成员变量中。

class my_shared_memory : public managed_shared_memory {
private:
const char* name;
public:
my_shared_memory(open_or_create_t t, const char *name, size_type size);
const char* get_name() { return name; }
};

my_shared_memory::my_shared_memory(open_or_create_t t, const char* name, size_type size)
: managed_shared_memory(t, name, size)
, name(name) {
}

关于c++ - 如何获取 boost::interprocess::managed_shared_memory 的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com