我有两个共享一个头文件的程序。这个头文件定义了一个包含几个成员的结构。然后是#define:#define STRUCTURE_SIZE sizeof(OUR_STRUCTURE)。
然后在共享内存中使用此结构,并将STRUCTURE_SIZE用作shmget()的size参数。
不幸的是,对于一个程序,STRUCTURE_SIZE最终是20758,而在另一个程序中,它最终是20764。因此,当第二个程序尝试获取共享内存时,shmget()返回EINVAL。
uname -a
Linux machine 2.6.30.10-105.2.23.fc11.i686.PAE #1 SMP Thu F