检查boost :: interprocess :: shared_memory_object是否为空?

时间:2018-07-24 04:56:33

标签: c++ boost shared-memory boost-interprocess

boost::interprocess::shared_memory_object可以使用默认的构造函数构造,该构造函数将创建一个空的shared_memory_object(即没有共享的内存)。根据情况,我的代码可能会构造一个shared_memory_object为空。这意味着有时候我需要检查给定的shared_memory_object是否为空。

尽管这似乎很容易做到,但是文档中没有任何地方描述如何测试shared_memory_object的空性!

我看过代码,这表明shared_memory_object::get_name()在没有关联的共享内存时返回一个空的C字符串,但是似乎无处保证我永远不会得到空的C字符串。共享内存关联时。而且,shared_memory_object::get_size()即使没有关联的共享内存也可能返回false,即使无法获得大小,因此也无法可靠地使用此方法。

测试shared_memory_object是否为空的正确方法是什么?

0 个答案:

没有答案