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



我有这样的共享记忆

struct MEMORY {
char * type;
int number;
}

现在在代码中,我使它共享一切工作可能,但其他进程无法看到什么指针指向我如何使用指针在共享内存?

您需要确保在所有进程的地址空间中的相同的地址上附加共享内存。否则,正如您所想象的,指针值在不同的进程中最终意味着不同的东西。

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

如果你不能保证在所有进程中都有相同的地址空间,另一种方法是只使用偏移量。每个进程只是从连接共享内存的基址偏移。

编辑:啊…也许你说的是"char* type"是一个任意的指针。请记住,其他进程只能看到共享内存中的内容。所有其他内存位置(指针值)都是不可访问的。因此,要使这个指针工作,它必须指向共享内存中的,而不是任意的指针。此外,您还需要确保共享内存在所有进程中都位于相同的地址。

最新更新