0

嗨,我了解到,如果我有一个共享内存 (c++) 类对象,那么如果该指针将在不相关的进程中用于访问同一事物,那么添加作为指针的成员变量是没有意义的。但是如何在共享内存中创建链表。假设一个 shm 对象指向另一个 shm 对象。这是否不可能以任何不相关的过程都可以遍历 shm.hm 中的链的方式实现。如果有可能,那怎么做?

4

1 回答 1

0

好的,我发现您可以通过例如了解所涉及结构的确切大小来测量 SHM 中两个结构之间的距离。因此,如果您将它放置在任意距离,最好是页面对齐,您可以将距离添加到 mmap 返回的开始指针,这将指向第二个、第三个等示例:

items[i].start = (void*)((char*)items[0].start + calcoffset)
于 2012-10-17T09:10:13.993 回答