<?php
// Создание блока с идентификатором 0xff3 и размером в 100 байт.
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
echo "Невозможно зарезервировать блок в сегменте памяти\n";
}
// Получение размера блока в разделяемой памяти
$shm_size = shmop_size($shm_id);
echo "Участок памяти, размером: " . $shm_size . ", успешно зарезервирован.\n";
// Проверочная запись некоторой строки в разделяемую память
$shm_bytes_written = shmop_write($shm_id, "Мой маленький блок", 0);
if ($shm_bytes_written != strlen("Мой маленький блок")) {
echo "Не удалось записать весь размер данных\n";
}
// Получение хранимой строки из разделяемой памяти
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
echo "Невозможно прочитать данные из блока памяти\n";
}
echo "Данные, размещенные в разделяемой памяти: " . $my_string . "\n";
// Удаление блока и закрытие сегмента разделяемой памяти
if (!shmop_delete($shm_id)) {
echo "Невозможно отметить участок памяти для освобождения.";
}
shmop_close($shm_id);
?>