我是boost的新手,我正在尝试在使用boost的进程之间使用共享内存。 它在我的Windows vs2010上完美运行,4个进程与管理器共享内存,在启动其他进程之前启动共享内存机制。
但是我在VirtualBox Ubuntu 14上使用boost 1.58和intel编译器获得了interprocess_exception,相同的代码在vs2010的Windows上运行
struct shm_remove
{
shm_remove() { shared_memory_object::remove("MySharedMemory1"); }
~shm_remove() { shared_memory_object::remove("MySharedMemory1"); }
} cleaner;
// exception occurs in the next line
managed_shared_memory sharedMemSegment = managed_shared_memory(boost::interprocess::create_only, "MySharedMemory1", 65536);
确切错误: “在抛出'boost :: interprocess :: interprocess_exception'之后调用终止what():没有这样的文件或目录
更改为boost :: interprocess :: open_or_create没有帮助
非常感谢帮助, 阿米特