我在堆上分配了char[1024]
已经。有没有办法通过boost::interprocess
或任何其他方式共享分配的数组,而不需要先在共享内存段上分配它?换句话说,我需要一种方法来创建共享内存对象 创建数组后来自数组本身。
由于一些未知的原因,这不起作用:
char* mem = new char[1024];
shared_memory_object shm (create_only, "id", read_write);
shm.truncate(1024);
mapped_region region(shm, read_write, 0, 1024, mem);
mapped_region
构造函数抛出interprocess_exception e
,但没有提供有用的信息:
cout << "Error: " << e.get_error_code() << ' ' << e.get_native_error() << ' ' << e.what() << "\n";
打印:
Error: 1 0