Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
嗨,我了解到,如果我有一个共享内存 (c++) 类对象,那么如果该指针将在不相关的进程中用于访问同一事物,那么添加作为指针的成员变量是没有意义的。但是如何在共享内存中创建链表。假设一个 shm 对象指向另一个 shm 对象。这是否不可能以任何不相关的过程都可以遍历 shm.hm 中的链的方式实现。如果有可能,那怎么做?
好的,我发现您可以通过例如了解所涉及结构的确切大小来测量 SHM 中两个结构之间的距离。因此,如果您将它放置在任意距离,最好是页面对齐,您可以将距离添加到 mmap 返回的开始指针,这将指向第二个、第三个等示例:
items[i].start = (void*)((char*)items[0].start + calcoffset)