我想实现一个内存映射文件。 参考:http://www.boost.org/doc/libs/1_66_0/doc/html/interprocess/sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.mapped_file!我现在了解内存映射文件和实现的基础知识。但是我无法通过内存映射文件找到偏移指针的使用示例。任何人都可以对此有所了解并尽可能提供小代码片段吗?
答案 0 :(得分:1)
只有将具有指针对象的对象放在共享内存中时才需要使用偏移指针。
例如:如果将以下结构放在共享内存中,那么您可能无法访问进程中的第二个原始指针成员(谁没有创建它),因为每个进程的虚拟地址都不同。 / p>
struct example { int a, int * b, 漂浮c };
解决方案 - 要在不同进程中使用该结构,可以使用offset_ptr替换第二个成员。
struct example {int a,offset_ptr b,int c};