XCI. 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);
?> |
|