Forum und email

Shared Memory Funktionen (Gemeinsamer Speicher)

Einführung

Shmop ist eine Sammlung einfach anzuwendender PHP-Funktionen, mit denen man mit PHP UNIX shared-memory-Segmente beschreiben, auslesen und löschen kann.

Hinweis: Ältere Windows-Versionen vor Windows2000 unterstützen keinen gemeinsamen Speicher. Unter Windows können diese Funktionen nur benutzt werden, wenn PHP als Modul des Webservers, wie etwa Apache oder IIS, läuft. (Mit CLI und CGI können die Funktionen nicht verwendet werden.)

Hinweis: Die Funktionen, die in diesem Kapitel erklärt werden, beginnen in PHP 4.0.3 alle mit shm, anstelle von shmop.

Anforderungen

Diese Erweiterung benötigt keine externen Bibliotheken.

Installation

Um die shmop-Erweiterung zu benutzen, müssen Sie PHP mit der Option --enable-shmop kompilieren.

Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.

Resource Typen

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Beispiele

Example#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"0644100);
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 Speicherblock"0);
if (
$shm_bytes_written != strlen("mein gemeinsamer Speicherblock")) {
    echo 
"Konnte nicht den gesamten String schreiben\n";
}

// Den Teststring wieder auslesen
$my_string shmop_read($shm_id0$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 das Speichersegment schliessen
if(!shmop_delete($shm_id)) {
    echo 
"Konnte den gemeinsamen Speicherblock nicht zum Löschen markieren.";
}
shmop_close($shm_id);
   
?>

Inhaltsverzeichnis

  • shmop_close — Schliesst einen gemeinsamen Speicherblock
  • shmop_delete — Einen gemeinsamen Speicherblock löschen
  • shmop_open — Erstellt oder öffnet einen gemeinsamen Speicherblock
  • shmop_read — Daten aus dem gemeinsamen Speicherblock auslesen
  • shmop_size — Gibt die Grösse des gemeinsamen Speicherblocks zurück
  • shmop_write — Schreibt Daten in einen gemeinsamen Speicherblock