У меня есть 2 программы, которые совместно используют файл заголовка. Этот заголовочный файл определяет структуру с несколькими членами. Тогда есть #define: #define STRUCTURE_SIZE sizeof(OUR_STRUCTURE)
.sizeof возвращает разные значения для структуры при компиляции разных программ
Эта структура затем используется в общей памяти с STRUCTURE_SIZE
, используемой для аргумента size
для shmget()
.
К сожалению, для одной программы STRUCTURE_SIZE составляет 20758, а в другой - 20764. Поэтому, когда вторая программа пытается получить общий mem, 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. –
Я бы, но я сдержанный стажер и не знаю, действительно ли мне это нужно. Эта структура является основой системы, по существу. – xxpor