c - 在 c 中使用 Shmget() 和结构体

标签 c shared-memory

我在 OSx 上使用 C 并使用 shmget() 来获取要在两个不同程序之间使用的内存 具有 2 个 int 值的结构 这是否意味着如果我想要 27 的大小,那么它必须是 54,这将如何与用于结构的指针一起工作,或者任何帮助将不胜感激

最佳答案

不,您需要在结构上使用 sizeof。您无法保证实现将如何填充结构内的值,因此您不能假设它们的大小。此外,如果后来由于向结构添加成员而导致大小发生变化,内存分配仍然可以正常工作。

然后使用 sizeof 中的值乘以您打算在共享内存区域中使用的结构实例的数量。

关于c - 在 c 中使用 Shmget() 和结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523749/

相关文章:

c - 按位或和逻辑或运算符。有什么不同?

c - 如何使用指针获取数组的索引

c - 将结构数组放入unix中的共享内存中,以便客户端程序可以访问它

C 共享内存段故障

C编程: Switch running twice

c - Linux 3.13 内核模块设置 procfile_read 文件结束条件

linux - shm_open 未设置组写访问权限

php共享内存读取全0

c - 为什么我需要线程来实现 'named pipe based on shared memory' ?

c - 为 int* 动态分配 100 个字节,然后尝试使用指针算法为其设置值有什么影响?