shmop_open - создаёт или открывает блок shared-памяти.
Описание
int shmop_open (int key, string flags, int mode, int size)
shmop_open() создаёт или открывает блок shared-памяти.
shmop_open() принимает 4 параметра: key системный id для блока shared memory, этот параметр
может передаваться как 10-ричный или 16-ричный. Второй параметр это флаги:
"a" для access/доступ (устанавливает SHM_RDONLY для shmat); используйте этот флаг, если необходимо открыть существующий сегмент shared-памяти только для чтения
"c" для create/создать (устанавливает IPC_CREATE); используйте этот флаг, если необходимо создать новый сегмент shared-памяти или, если сегмент
с тем же ключом уже существует, попытаться открыть его для чтения и записи
"w" для доступа read & write/чтения и записи; используйте этот флаг, если необходимо читать и записывать в сегмент shared-памяти;
используйте этот флаг в большинстве случаев
"n" для создания нового сегмента памяти (устанавливает IPC_CREATE|IPC_EXCL); используйте этот флаг, если хотите создать новый сегмент shared-памяти, но,
если он уже существует с тем же флагом, будет неудача. Это используется только для целей обеспечения секретности.
Третий параметр mode это режим - разрешения, которые вы хотите назначить вашему сегменту памяти, которые являются теми же, что и разрешения для файла.
Разрешения должны передаваться в 8-ричной форме, например, 0644. Последний параметр size это размер в байтах блока shared-памяти, который вы хотите создать.
Примечание: третий и четвёртый параметры должны вводиться как 0, если вы открываете
существующий сегмент памяти. При успехе shmop_open() возвратит id, который можно использовать для доступа к сегменту shared-памяти,
созданному вами.