Mémoire partagée

Manuel PHP
Précédent |  | Suivant

# XCIII. 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.

> Note : 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);
    ?>

Précédent | Sommaire | Suivant
session_write_close | Niveau supérieur | shmop_close