我在寫實時數據來提升共享內存。起初,我用這個,我要訪問的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