array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.shmop-open.php', 1 => 'shmop_open', ), 'up' => array ( 0 => 'ref.shmop.php', 1 => 'Разделяемая (shared) память', ), 'prev' => array ( 0 => 'function.shmop-delete.php', 1 => 'shmop_delete', ), 'next' => array ( 0 => 'function.shmop-read.php', 1 => 'shmop_read', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/shmop/functions/shmop-open.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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().