gpt4 book ai didi

c - 共享内存中的指针 - C 语言 Linux

转载 作者:行者123 更新时间:2023-11-30 17:52:53 24 4
gpt4 key购买 nike

我已经像这样共享了内存

struct MEMORY {
char * type;
int number;
}

现在在代码中我让它共享一切可能都有效,但其他进程看不到指向什么指针我如何在共享内存中使用指针?

最佳答案

您需要确保共享内存连接到所有进程的地址空间中的相同地址。否则,正如您可以想象的那样,指针值最终在不同的进程中具有不同的含义。

你用什么来共享内存? mmap 还是 shm?它是 mmap 调用中的第一个参数。

如果您不能确保所有进程中的地址空间相同,则另一种方法是仅使用我们的偏移量。每个进程只是从共享内存所附加的基地址进行偏移。

编辑:啊......也许你的意思是“char*类型”是一些任意指针。请记住,其他进程只能看到共享内存中的内容。所有其他内存位置(指针值)均不可访问。因此,要使该指针起作用,它需要指向共享内存中的某个东西,而不仅仅是任何任意指针。那,你需要确保共享内存附加在所有进程中的相同地址。

关于c - 共享内存中的指针 - C 语言 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com