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

XCIII. Функции Shared Memory

Shmop это набор легко используемых функций, позволяющих РНР читать , записывать, создавать и удалять сегменты совместно используемой памяти UNIX shared memory). Функции не будут работать в Windows, так как эти ОС не поддерживают shared-память. Для использования shmop вам нужно скомпилировать РНР с параметром --enable-shmop в строке конфигурации.

Примечание: В PHP 4.0.3 эти функции имели префикс shm вместо shmop.

Пример 1. Обзор операций Shared Memory

<?php
   
// Создать 100-байтный блок shared memory с системным id if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
	echo "Couldn't create shared memory segment\n";
}

// Получить размер блока shared memory
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: ".$shm_size. " has been created.\n";

// Запишем тестовой строки в shared memory
$shm_bytes_written = shmop_write($shm_id, "my блок shared memory", 0);
if($shm_bytes_written != strlen("my блок shared memory")) {
	echo "Couldn't write the entire length of data\n";
}

// Теперь прочитаем строку
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
	echo "Couldn't read from блок shared memory\n";
}
echo "The data inside shared memory was: ".$my_string."\n";

// А теперь удалим блок и закроем сегмент shared memory
if(!shmop_delete($shm_id)) {
	echo "Couldn't mark блок shared memory for deletion.";
}
shmop_close($shm_id);
   
?>
Содержание
shmop_close - закрывает блок shared memory
shmop_delete - удаляет блок shared memory
shmop_open - создаёт или открывает блок shared memory
shmop_read - читает данные из блока shared memory
shmop_size - получает размер блока shared memory
shmop_write - записывает данные в блок shared memory

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