У меня есть 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)