Учебник по основам PHP. PHPBeginner



         

Разделяемая память


Данный набор функций позволяет РНР создавать, удалять, читать и записывать данные в разделяемые блоки памяти UNIX. С помощью разделяемой памяти можно осуществлять глобальный обмен данными между приложениями. В системах Windows эти функции не работают, так как там не поддерживается разделяемая память1. Для использования этих функций необходимо скомпилировать РНР с параметром — enable-shmop. В версиях РПР 4.0.3 и ниже эти функции имели префикс shm_.

<?php
' Sshmjd = shmop_open
(0xff3. "с". 0644. 100) if('$shmjd
) { echo "Couldn't create shared
memory segment\n": }
$shm_size = bhmop_size($shmjd):
echo "Был создан SHM Block
размером: ",$shm_size. "\n".
$shm_bytes_wntten = shmop_write
($shffl_i(J. "my shared memory block", 0);
if($shm_bytes_wntten =
strlenC'my shared memory block"))
{ echo "Невозможно записать
все данные\n". } $my_stnng =
shmop_read($shmjid. 0. $shm_size):
if(!$my_stnng) { echo "Невозможно
прочитать даннь:е\n". }
echo "Данные в блоке: ".
$my_stnng. "\n":
if(!shmop_delete(Ishm_1d))
{ echo "Невозможно
удалить блок памяти". }
shmop_close($shin_id): ?>

shmop_open

Создание или открытие блока разделяемой памяти

int shmop_open (int key, string flags, int mode, int size)

В аргументе key указывается системный идентификатор блока; во втором аргументе, flags, указывается вид операции:

  • "а" — открыть доступ к уже существующему блоку (IPC_EXCL);
  • "с" — создать новый блок (IPC_CREATE).
  • Если блок создастся, то в третьем и четвертом аргументах передаются соответственно: права доступа к нему (обычно в восьмеричном представлении) и размер в байтах. Если же блок открывается, то в третьем и четвертом аргументах следует передавать значение 0.

    В случае успеха функция возвращает дескриптор блока, используе- | мый в последующих операциях с ним.

    shmop_size

    Получение размера блока разделяемой памяти

    int shmop_size (int shmid)

    Возвращает размер блока, указанного дескриптором shmid.




    Содержание  Назад  Вперед