boost-interprocess

    5熱度

    5回答

    假設我有Base和Derived : public Base。 我已經使用boost :: interprocess庫構建了一個共享內存段。是否有可能有類似這樣的代碼: Base* b = new Derived(); write(b); //one app writes Base* b2 = read(b); //second app reads //b equals b2 (bitwis

    9熱度

    1回答

    有沒有任何明確的兼容性保證boost :: interprocess :: managed_shared_memory可以在不同的boost版本上工作?我打算使用它在多個進程之間共享一個整數或十個整數(這實際上將作爲它們全部讀取和寫入的一段數據的修訂版號)。這些流程分開發布,並且偶爾會暫停使用。 現在的問題是:我是否將自己鎖定在給定版本的永久提升上,因爲1.51的managed_shared_me

    0熱度

    1回答

    我試圖在VS 2010中構建一段代碼,它通常在網上找到,作爲在共享內存中具有映射的示例。 #include <boost\interprocess\managed_shared_memory.hpp> #include <boost\interprocess\containers\map.hpp> typedef boost::interprocess::map<long,long,

    6熱度

    1回答

    This thread是解釋如何使用Boost實現讀寫器鎖定的黃金。它看起來相對簡單,我真的很喜歡它,但它似乎也使用了非命名鎖,我需要一個進程間解決方案(不需要是便攜式的,可以是Windows)。 有沒有辦法讓一個進程間shared_mutex?我看到有一個named_mutex,但我不能讓它與shared_lock其他鎖一起使用。 任何指針表示讚賞。 [編輯] 在此期間,我所遇到的this th

    3熱度

    3回答

    我正在研究由兩個必須共享某些數據結構的進程組成的應用程序。這些類被組織在不同的庫中,這些庫被用於不同的應用程序中。 我的第一次嘗試是在Win32中使用Named Shared Memory但這裏的問題是我不能使用STL容器。 尋找一個解決方案,我發現Boost Interprocess,並且,如果我明白,我必須將我的類中的所有STL容器更改爲「STL」Boost Interprocess容器。 那

    6熱度

    3回答

    創建一個鎖定的文件我想使用boost::interprocess::file_lock來確保在過程P2之前沒有讀取由進程P1寫入目錄x的文件,直到完成爲止。爲此,我希望P1在寫入文件時用boost::interprocess::file_lock鎖定文件,然後在完成時解鎖它們。然後P2可以跳過(並回到)任何被鎖定的文件。 我遇到的問題是,看起來boost::interprocess::file_l

    1熱度

    1回答

    如果我使用allocate_aligned在共享內存塊中分配一個對齊的內存塊,那麼如何在另一個進程中識別同一個塊?例如。 managed_shared_memory managed_shm(open_or_create, "SharedMemory", 65536); void *ptr = managed_shm.allocate_aligned(256, 16); 如何從其他進程中找到p

    0熱度

    1回答

    如果我使用allocate_aligned在託管共享內存中分配對齊的內存塊,是否可以保證在其他進程中共享時該分配將具有相同的對齊方式?該文檔清楚地表明,基地址可能會有不同的映射,當然,它似乎沒有說明對齊方面的任何內容。 我已經運行了一個似乎表明對齊方式相同的實驗,但這可能只是運氣不佳,所以我希望得到更可靠的預期行爲確認。 (常識說它應該是相同的對齊方式,否則會嚴重限制共享內存中allocate_a

    5熱度

    2回答

    我正在創建一個程序,它將接收來自遠程機器的消息,並需要將消息寫入磁盤上的文件。我發現的困難在於這個程序的目的是測試接收消息的庫的性能,因此,我需要確保將消息寫入磁盤不會影響庫的性能。該庫通過回調函數將消息傳遞給程序。另一個困難是該解決方案必須獨立於平臺。 我有什麼選擇? 我想到了以下幾點:使用boost:asio 寫入文件,但似乎(見this文檔),爲文件異步寫入是在該庫的Windows的特定部分

    2熱度

    1回答

    嘗試編譯應用程序時發生錯誤嘗試使用boost::interprocess::managed_shared_memory類的construct<T>()方法時,我收到一個奇怪的編譯錯誤。我在1.48版本中使用Boost庫,在4.6.3版本中使用GCC。 的問題是,當我創建一個managed_shared_memory object(這不是結構的成員),然後我試圖使用它的方法construct<T>(