Forum und email
Funkce pro práci se sdílenou pamětí

CXLIX. Funkce pro práci se sdílenou pamětí

Úvod

Shmop je snadno použitelná sada funkcí, která PHP umožňuje číst, zapisovat, vytvářet a mazat segmenty UNIXové sdílené paměti. Tyto funkce na Windows předcházejících Windows 2000 nefungují.

Poznámka: Názvy funkcí popisovaných v této kapitole začínají v PHP 4.0.3 na shm_(), ale od PHP 4.0.4 se jejich názvy změnily na shmop_().

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Pokud chcete shmop používat, musíte PHP zkompilovat s volbou --enable-shmop.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. Shared Memory Operations Overview

<?php
   
// Vytvořit 100 bytový blok sdílené paměti se system id 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!
$shm_id) {
    echo
"Nepodařilo se vytvořit segment sdílené paměti\n";
}

// Zjistit velikost bloku sdílené paměti
$shm_size = shmop_size($shm_id);
echo
"SHM blok o velikosti : ".$shm_size. " byl vytvořen.\n";

// Zapíšeme do sdílené paměti zkušební řetězec
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if (
$shm_bytes_written != strlen("my shared memory block")) {
    echo
"Nepodařilo se zapsat kompletní data\n";
}

// Načteme řetězec zpátky
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!
$my_string) {
    echo
"Nepodařilo se číst z bloku sdílené paměti\n";
}
echo
"Data ve sdílené paměti byla: ".$my_string."\n";

// Smažeme tento blok a zavřeme segment sdílené paměti
if (!shmop_delete($shm_id)) {
    echo
"Nepodařilo se smazat blok sdílené paměti.";
}
shmop_close($shm_id);
   
?>

Obsah
shmop_close -- Zavřít blok sdílené paměti
shmop_delete -- Smazat blok sdílené paměti
shmop_open -- Vytvořit nebo otevřít blok sdílené paměti
shmop_read -- Přečíst data z bloku sdílené paměti
shmop_size -- Zjistit velikost bloku sdílené paměti
shmop_write -- Zapsat data do bloku sdílené paměti