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