LXXIII. Funkce pro prßci se sdφlenou pam∞tφ

Shmop 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 nefungujφ, proto╛e tento systΘm nepodporuje sdφlenou pam∞╗. Pokud chcete shmop pou╛φvat, budete muset PHP zkompilovat s --enable-shmop.

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_().

P°φklad 1. P°ehled operacφ se sdφlenou pam∞tφ

<?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("m∙j blok sdφlenΘ pam∞ti")) {
	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_open — Vytvo°it nebo otev°φt blok sdφlenΘ pam∞ti
shmop_read — P°eΦφst data z bloku sdφlenΘ pam∞ti
shmop_write — Zapsat data do bloku sdφlenΘ pam∞ti
shmop_size — Zjistit velikost bloku sdφlenΘ pam∞ti
shmop_delete — Smazat blok sdφlenΘ pam∞ti
shmop_close — Zav°φt blok sdφlenΘ pam∞ti