XCIII. 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 kompilieren.
Anmerkung:
Diese Erweiterung ist EXPERIMENTELL. Das
Verhalten dieser Erweiterung, einschließlich der Funktionsnamen,
und alles Andere was hier dokumentiert ist, kann sich in
zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien
Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes
Risiko.
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 den gesamten String schreiben\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);
?> |
|
- 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 -- Get size of shared memory block
- shmop_write -- Schreibt Daten in einen gemeinsamen Speicherblock