memory-mapped-files

    0熱度

    1回答

    我使用boost::iostreams::mapped_file_source創建一個內存映射文件。超過1024.當我創建大約1024個內存映射文件時,我驚訝地發現我的程序會拋出一個異常,指出打開的文件過多。經過一番研究後,我發現Ubuntu使用每個進程1024的最大文件大小(從ulimit -n找到)。不幸的是,我需要同時打開所有文件。有沒有人知道解決這個問題的方法?有沒有可能使文件不能達到極限

    4熱度

    1回答

    我正面臨一個新問題,這是在爲我的應用程序編寫IPC時發生的。 在UWP之前,我能夠成功使用指令using System.IO.MemoryMappedFiles;。現在我不能使用using System.IO.MemoryMappedFiles;,我需要它。 每個人都面臨同樣的問題嗎?如果是的話,你如何解決它? 我的應用程序不再編譯。 我已經嘗試重新導入System.Core.dll作爲參考和Dl

    0熱度

    1回答

    我試着寫下面的結構到內存映射文件,但我仍然有問題與陣列(寫入拋出異常,該結構不能含有參考) [StructLayout(LayoutKind.Explicit)] struct IndexEntry { [FieldOffset(0)] public byte key; [FieldOffset(4)] public int lastValueIdx;

    2熱度

    2回答

    envirenment:gcc版本4.8.4(Ubuntu 4.8.4-2ubuntu1〜14.04) 3.16.0-30-generic#40〜14.04.1-Ubuntu SMP Thu Jan 15 17:45:15 UTC 2015 i686 i686 i686 GNU C code a2.c:有一個40MB全局數組,每個項目都被分配。 int b[10000000];//40M glob

    1熱度

    2回答

    目前我有這回事: struct HashItem { uint32_t Value; char Key; uint32_t GetSize() { return 4 + GetKey().size(); } void SetKey(std::string &Key) { memcpy(&(this->Key), Key.

    0熱度

    1回答

    根據文檔,在Local \或Global \之後,除了反斜槓之外,任何字符都可以。我決定按照這樣的物理文件的文件路徑來命名我的MMF: std::string GetMapName(std::string FilePath) { std::string Ret("Local\\"); char* pP = (char*)FilePath.c_str(); for

    0熱度

    1回答

    我文件讀入一個MappedByteBuffer: MappedByteBuffer buffer = FileChannel.open(file, StandardOpenOption.READ) .map(FileChannel.MapMode.READ_ONLY, 0, Files.size(file)) .load(); ,並將其寫入到OutputStream: Ch

    1熱度

    3回答

    不能真正找到這個任何細節,繼承人我所知道的有關MMF在窗口: 在Windows中創建一個內存映射文件添加任何內容到程序使用 創建視圖的內存表觀量該文件消耗相當於視圖大小的內存 這看起來相當倒退,因爲對於我來說,我知道mmf本身實際上具有內存......某處。如果我用mmf寫東西並銷燬視圖,數據仍然存在。同時,爲什麼這個觀點會留下任何記憶呢?它只是一個指針,不是嗎? 然後theres與什麼實際在公羊

    0熱度

    1回答

    我有一個需要通過內存映射文件與本地工具進行通信的控制器的Web API。當我嘗試使用OpenExisting打開這樣的文件時,出現「文件未找到」錯誤。 string MMF_In_Name = "MemoryMappedFilename"; MemoryMappedFile MMF_In = MemoryMappedFile.OpenExisting(MMF_In_Name); 我試着給名字

    0熱度

    1回答

    在我的C++代碼中,我需要將大量數據寫入文件,並且我想使用升壓映射文件而不是使用普通文件。只有當我完成將所有數據寫入內存時,我纔想將映射文件轉儲到磁盤上。 我在Windows Server 2008 R2和boost 1.58上使用Visual Studio 2010。 我從來沒有使用映射文件,所以我試圖編譯Boost文檔 #include <iostream> #include <fstrea