проще, просто открыть файл и сделать ему mmap в память, в последней строчке выкидывает с эксепшеном, может кто подсказать почему?
https://www.boost.org/doc/libs/1_70_0/doc/html/interprocess/sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.mapped_file
using namespace boost::interprocess;
const char *FileName = "c_e_d.bin";
const std::size_t FileSize = color_size+depth_size;
file_mapping::remove(FileName);
std::filebuf fbuf;
fbuf.open(FileName, std::ios_base::in | std::ios_base::out
| std::ios_base::trunc | std::ios_base::binary);
//Set the size
fbuf.pubseekoff(10000-1, std::ios_base::beg);
fbuf.sputc(0);
//Create a file mapping
file_mapping m_file(FileName, read_write);
//Map the whole file with read-write permissions in this process
mapped_region region(m_file, read_write);
может fbuf.close() нужен до маппинга ?
Хотя у них у парента и у чайлдов в примере не делается вообще close, у меня наверное надо будет сделать когда закрою.
кто нибудь ? + в карму.
https://www.boost.org/doc/libs/1_77_0/libs/iostreams/doc/classes/mapped_file.html#mapped_file
линк на версию не верный. У меня тот же линк (только 1.70.0)
Нет, это не так:)
У вас ссылка на interprocess, по моей ссылке правильный mapped_file, который создаётся в одну строку
вы как то особо устанавливали namespace iostreams ? хотя дока есть и под 1.70.0, у меня нет такого namespace. в смсл boost::iostreams
наверное инклуд забыл
а что в вашем есть ? там нет писать в него
только итератор и конст чтение
Обсуждают сегодня