XCIV. Mémoire partagée
Shmop
est
un
ensemble
de
fonctions
simples
pour
gérer
la
mémoire
partagée
avec
PHP
(
lecture
,
écriture
,
création
et
suppressions
de
segments
de
mémoire
paragée
UNIX
)
.
Ces
fonctions
ne
fonctionnent
pas
sous
Windows
,
car
ce
système
d
'
exploitation
ne
supporte
pas
la
mémoire
partagée
.
Pour
utiliser
les
fonctions
shmop
,
compilez
PHP
avec
l
'
option
--enable-shmop
parameter
.
Toutes
les
fonctions
décrites
ci-dessous
commencent
par
shm_
poru
les
versions
jusqu
'
à
PHP
4.0.3
,
mais
en
PHP
4.0.4
et
plus
récent
,
elles
sont
préfixées
par
shmop_
.
Exemple
1
.
Introduction
à
la
mémoire
partagée
?php
/
/
Crée
100
octets
de
mémoire
partagée
avec
/
/
un
identifiant
système
"
0xff3
"
$shm_id
=
shmop_open(0xff3
,
"c"
,
0644
,
100)
;
if(!$shm_id
)
{
echo
"Impossible
de
créer
la
mémoire
partagée\n"
;
}
/
/
Lire
la
taille
de
la
mémoire
partagée
$shm_size
=
shmop_size($shm_id)
;
echo
"Un
bloc
de
SHM
de
taille
".$shm_size
.
"
a
été
créé.\n"
;
/
/
Ecriture
d'une
chaîne
de
test
dans
ce
segment
$shm_bytes_written
=
shmop_write($shm_id
,
"mon
bloc
de
mémoire
partagée"
,
0)
;
if($shm_bytes_written
!=
strlen("mon
bloc
de
mémoire
partagée")
)
{
echo
"Impossible
d'écrire
toutes
les
données
en
mémoire\n"
;
}
/
/
Lecture
du
segment
$my_string
=
shmop_read($shm_id
,
0
,
$shm_size)
;
if(!$my_string
)
{
echo
"Impossible
de
lire
toutes
les
données
en
mémoire\n"
;
}
echo
"Les
données
mis
en
mémoire
partagées
sont
:
".$my_string
."\n"
;
/
/Maintenant
,
effacons
le
bloc
,
et
fermons
le
segment
de
mémoire
if(!shmop_delete($shm_id)
)
{
echo
"Impossible
d'effacer
le
segment
de
mémoire"
;
}
shmop_close($shm_id)
;
?
|
|