PHP Handbuch
Zurück |  | Nach vorne

# XCI. Shared Memory Funktionen (Gemeinsamer Speicher)

Shmop ist eine Sammlung einfach anzuwendender PHP-Funktionen, mit denen man mit PHP UNIX shared-memory-Segmente beschreiben, auslesen und löschen kann. Die Funktionen können mit Windows nicht eingesetzt werden, weil Windows keinen gemeinsamen Speicher unterstützt. Um shmop zu nutzen, müssen Sie PHP mit der Option --enable-shmop in der Konfiguratinszeile kompilieren.

> Anmerkung: Die Funktionen, die in diesem Kapitel erklärt werden, beginnen in PHP 4.0.3 alle mit shm_() , aber ab Version PHP 4.0.4 und grösser, wurden diese Namen geändert und beginnen nun mit shmop_().

Beispiel 1. Shared Memory Operationen - Übersicht
    <?php

    // Erstelle einen 100 Byte grossen gemeinsam genutzten Speicherblock
    // mit mit der System_ID if 0xff3
    $shm_id = shmop_open(0xff3, "c", 0644, 100);
    if(!$shm_id) {
            echo "Konnte kein gemeinsames Speichersegment erstellen\n";
    }

    // Hole die Grösse des gemeinsamen Speicherblocks
    $shm_size = shmop_size($shm_id);
    echo "SHM Block mit: ".$shm_size. " Bytes wurde erstellt.\n";

    // Teststring in den gemeinsamen Speicher schreiben
    $shm_bytes_written = shmop_write($shm_id, "mein gemeinsamer Speicher", 0);
    if($shm_bytes_written != strlen("mein gemeinsamer Speicher")) {
            echo "Konnte nicht ermitteln, wieviele Bytes geschrieben wurden\n";
    }

    // Den Teststring wieder auslesen
    $my_string = shmop_read($shm_id, 0, $shm_size);
    if(!$my_string) {
            echo "Konnte nicht aus dem gemeinsamen Speicher lesen\n";
    }
    echo "Die Daten im gemeinsamen Speicher waren: ".$my_string."\n";

    // Den Speicherblock löschen und den gemeinsamen Speicher schliessen
    if(!shmop_delete($shm_id)) {
            echo "Konnte den gemeinsamen Speicherblock nicht zum Löschen markieren.";
    }
    shmop_close($shm_id);

    ?>

Zurück | Zum Anfang | Nach vorne
session_write_close | Nach oben | shmop_open