我在写实时数据来提升共享内存。起初,我用这个,我要访问的SHM每次:提升进程间共享内存open_or_create每次都会抛出异常
boost::interprocess::managed_shared_memory segment(boost::interprocess::open_or_create, "MySharedMemory",20000000);
在调试模式下,我发现,这个调用总是抛出此异常:
First-chance exception at 0x00007FFA30BB95FC in testerud.exe: Microsoft C++ exception: boost::interprocess::interprocess_exception at memory location 0x000000000550E1C0.
但我能够打开和推我的数据共享内存。我发现了这个问题。我在过程开始时创建了另一个函数open_or create
,然后每次使用open_only
写入。没有例外。
我很好奇背后的原因。
“在调试模式下,我发现这个调用总是抛出这个异常” - 如果你声明它的频率是如何的,那么_always_失败? – sehe
另外,如果没有其他线程/进程,为什么每次都打开该段?只要保持该部分打开。否则“实时”很快就会成为说“狗慢”的好方法 – sehe
是的,它在这里不相关。我将删除它。谢谢。 – brownKnight