c++ - 在内存映射文件中 boost C++ 偏移指针

标签 c++ boost memory-mapped-files interprocess

我想实现一个内存映射文件。 引用:http://www.boost.org/doc/libs/1_66_0/doc/html/interprocess/sharedmemorybetweenprocesses.html#interprocess.sharedmemorybetweenprocesses.mapped_file !我现在了解内存映射文件和实现的基础知识。但是我无法找到一个使用内存映射文件的偏移指针的示例。任何人都可以对此有所了解并在可能的情况下提供小代码片段吗?

最佳答案

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

  2. 例如:如果您将以下结构放在共享内存中,那么您可能无法访问进程中的第二个原始指针成员(谁没有创建它),因为每个进程的虚拟地址都不同。

    结构示例 { 诠释一个, 整数* b, float c };

  3. 解决方案 - 要在不同的进程中使用该结构,可以将第二个成员替换为 offset_ptr。

    结构示例 { int a, offset_ptr b, int c };

引用:http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/offset_ptr.html

关于c++ - 在内存映射文件中 boost C++ 偏移指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49188188/

相关文章:

c++ - Qt:QFileSystemModel 按表达式过滤掉目录(不是文件)

c++ - boost 池 malloc() 和 free() 编译器错误

c - 命名共享内存 Windows api c++

c++ - gdb 前端与 vim 一起使用?

c++ - 使用初始化列表初始化固定数量的变量

c++ - 在哪里可以找到 libboost_random?

windows - 识别内存映射文件

c# - FileSystemWatcher Changed 事件不会针对内存映射文件触发

C++/Java 继承 vs. 委托(delegate) vs. 等等

c++ - Boost几何cartesian2d.hpp