Учебник РНР
Назад Вперёд

shmop_open

(PHP 4 >= 4.0.4)

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-памяти, созданному вами.

Пример 1. Создание нового блока shared-памяти
<?php $shm_id = shmop_open(0x0fff, "c", 0644, 100); ?>

Открывается блок shared-памяти с system id в 0x0fff.


Назад Оглавление Вперёд
shmop_delete Вверх shmop_read