xxp*_*por 3 c++ linux gcc sizeof shared-memory
我有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)
Pau*_*l R 13
一些可能性:
#pragma pack相似或不相似,并且不会恢复设置(注意:最后两点可以递归地应用于问题结构中使用的任何其他结构.)