【发布时间】:2010-11-05 13:30:45
【问题描述】:
我有 2 个程序共享一个头文件。这个头文件定义了一个包含几个成员的结构。然后有一个#define:#define STRUCTURE_SIZE sizeof(OUR_STRUCTURE)。
此结构随后用于共享内存中,STRUCTURE_SIZE 用于 size 参数到 shmget()。
不幸的是,对于第一个程序,STRUCTURE_SIZE 最终为 20758,而在另一个程序中,它最终为 20764。因此,当第二个程序尝试获取共享内存时,shmget() 返回 EINVAL。
uname -a:
Linux machine 2.6.30.10-105.2.23.fc11.i686.PAE #1 SMP Thu Feb 11 07:05:37 UTC 2010 i686 i686 i386 GNU/Linux
g++ --version:
g++ (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2)
【问题讨论】:
-
发布一些代码。 OUR_STRUCTURE 是什么?
-
需要定义OUR_STRUCTURE。
-
我愿意,但我是一个低级的实习生,不知道我是否真的应该。这种结构本质上是系统的核心。
-
您可以随时匿名成员并输入姓名。
标签: c++ linux gcc shared-memory sizeof