Introduction
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 partagée UNIX). Ces fonctions ne fonctionnent pas
sous Windows, car ce système d'exploitation ne supporte pas
la mémoire partagée. Toutefois, depuis Windows 2000,
en activant la librairie php_shmop.dll
dans votre fichier php.ini vous activerez aussi cette fonctionnalité.
Note :
En PHP 4.0.3, ces fonctions étaient préfixées avec
shm au lieu de shmop.
Pré-requis
Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.
Installation
Pour utiliser les fonctions shmop, compilez PHP avec l'option
--enable-shmop.
Configuration à l'exécution
Cette extension ne définit aucune directive de configuration.
Constantes prédefinies
Cette extension ne définit aucune constante.
Exemples
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, "my shared memory block", 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); ?>
|
|