Ошибка в распределении общей памяти - PullRequest
0 голосов
/ 15 июня 2011

Я пытаюсь выделить общую память размером 64B. Но компилятор выдает ошибку, когда я даю размер больше 27 .. Как решить эту проблему. Я использую компилятор gcc. Я запускаю программу на сервере.

Это код, который я использовал.

 shmid=(shmget(key,size,IPC_CREAT | 0666));   // size is defined as 64

Я получаю сообщение об ошибке при выделении памяти. Но для размера до 27 он отлично работает

1 Ответ

1 голос
/ 15 июня 2011

Не используйте разделяемую память SysV - интерфейс серьезно ужасен и имеет ряд огромных недостатков (например, существуют жесткие ограничения на то, сколько вы можете использовать, и его необходимо очищать вручную, если ваше приложениеаварий).Если вам нужна общая память, используйте mmap().

...