(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
shmop_open — Резервирование или использование блока разделяемой памяти
shmop_open() резервирует или использует существующий блок разделяемой памяти.
key
Системный идентификатор блока разделяемой памяти. Может быть задан в десятичной или шестнадцатеричной кодировке.
mode
Доступные для использования флаги:
permissions
Права доступа к участку памяти такие же, как к обычному файлу.
Их можно указывать в восьмеричном виде, например 0644
.
size
Размер резервируемого блока в разделяемой памяти в байтах
Замечание:
Обратите внимание: третий и четвёртый параметры должны быть указаны как 0, если необходимо получить доступ к существующему участку памяти.
В случае успешного выполнения shmop_open() возвращает
экземпляр Shmop, который может быть в дальнейшем использован для доступа
к зарезервированному участку памяти. В случае возникновения ошибки возвращает false
.
Если параметр mode
указан некорректно или параметр size
меньше или равен нулю, выдаётся ошибка ValueError.
В случае возникновения других ошибок выдаётся ошибка уровня E_WARNING
.
Версия | Описание |
---|---|
8.0.0 | В случае успешного выполнения возвращается экземпляр Shmop; ранее возвращался ресурс (resource). |
8.0.0 |
Если параметр mode указан некорректно или параметр size
меньше или равен нулю, выдаётся ошибка ValueError.
previously E_WARNING was emitted instead,
ранее вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала false .
|
Пример #1 Резервирование участка разделяемой памяти
<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>
В приведённом примере выполняется доступ к блоку с идентификатором, возвращаемым функцией ftok().