Interprocess windows_shared_memory 1.35
I am attempting to create a windows_shared_memory object for a large file that exists using Boost 1.35. I have attempted to create it 2 ways: interprocess::windows_shared_memory *wsm = new interprocess::windows_shared_memory(interprocess::open_or_create, fileName.c_str(), interprocess::read_only,fileSize); I am getting an interprocess exception that the system cannot find the path specified. (boost::error_info is 'not_found_error') The file is valid as previous boost::filesystem calls can successfully create a path object, append a file name and get the file size. The file is large (110MB) so I also attempted a size of 1000 -- same exception. After stepping through some code, it seems I am getting the exception in win32_api.hpp when the CreateFileMappingA is called. Has anyone had issues with windows_shared_memory objects in the 1.35 version? Thanks. Joy
Joy Vincent wrote:
I am attempting to create a windows_shared_memory object for a large file that exists using Boost 1.35. I have attempted to create it 2 ways:
interprocess::windows_shared_memory *wsm = new interprocess::windows_shared_memory(interprocess::open_or_create, fileName.c_str(), interprocess::read_only,fileSize);
Windows shared memory creates a shared memory not a file. windows_shared_memory is backed by the windows swap file not any arbitrary filesystem path. If you want to map a file use file_mapping + mapped region. Regards, Ion
participants (2)
-
Ion Gaztañaga
-
Joy Vincent