C++ 增强c++;内存映射文件中的偏移指针

C++ 增强c++;内存映射文件中的偏移指针,c++,boost,memory-mapped-files,interprocess,C++,Boost,Memory Mapped Files,Interprocess,我想实现一个内存映射文件。 关于:!我现在了解了内存映射文件和实现的基础知识。然而,我找不到一个完整的例子,说明如何使用带有内存映射文件的偏移指针。如果可能的话,有人能解释一下并提供一些小代码片段吗 只有在共享内存中放置具有指针对象的对象时,才需要使用偏移指针 例如:如果将下面的结构放在共享内存中,则可能无法访问进程中的第二个原始指针成员(不是创建它的人),因为每个进程的虚拟地址不同 结构示例 { INTA, int*b, 浮点数c }; 解决方案-要在不同的过程中使用该结构,您可以使用offs

我想实现一个内存映射文件。 关于:!我现在了解了内存映射文件和实现的基础知识。然而,我找不到一个完整的例子,说明如何使用带有内存映射文件的偏移指针。如果可能的话,有人能解释一下并提供一些小代码片段吗

  • 只有在共享内存中放置具有指针对象的对象时,才需要使用偏移指针

  • 例如:如果将下面的结构放在共享内存中,则可能无法访问进程中的第二个原始指针成员(不是创建它的人),因为每个进程的虚拟地址不同

    结构示例 { INTA, int*b, 浮点数c };

  • 解决方案-要在不同的过程中使用该结构,您可以使用offset_ptr替换第二个成员

    结构示例{inta,offsetptrb,intc}

  • 参考:

  • 只有在共享内存中放置具有指针对象的对象时,才需要使用偏移指针

  • 例如:如果将下面的结构放在共享内存中,则可能无法访问进程中的第二个原始指针成员(不是创建它的人),因为每个进程的虚拟地址不同

    结构示例 { INTA, int*b, 浮点数c };

  • 解决方案-要在不同的过程中使用该结构,您可以使用offset_ptr替换第二个成员

    结构示例{inta,offsetptrb,intc}


  • ref:

    UPDATE:void*addr=region.get_address();由于原始指针只指向虚拟内存,因此每个进程的内存都会有所不同。现在,如果我必须用偏移量ptr来代替它,因为它保持了对象之间的距离,那么该怎么做呢?JSON到底会用偏移量ptr做什么?促进偏移量PTR是一个有用的内部抽象,例如用于共享内存分配器。我的坏!我不知道Boost属性树不支持JSON。过去曾在ini和xml文件中使用过它。曾在@sehe编辑并回答过它!如果您觉得我清楚地理解并解释了偏移指针,请投赞成票。更新:void*addr=region.get_address();由于原始指针只指向虚拟内存,因此每个进程的内存都会有所不同。现在,如果我必须用偏移量ptr来代替它,因为它保持了对象之间的距离,那么该怎么做呢?JSON到底会用偏移量ptr做什么?促进偏移量PTR是一个有用的内部抽象,例如用于共享内存分配器。我的坏!我不知道Boost属性树不支持JSON。过去曾在ini和xml文件中使用过它。曾在@sehe编辑并回答过它!如果你觉得我理解并清楚解释了偏移指针,请投赞成票。