XCIV. 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 . Die Funktionen können mit Windows nicht eingesetzt werden , da Windows keinen gemeinsamen Speicher unterstützt . Um shmop zu nutzen , müssen Sie PHP mit der Option --enable-shmop kompilieren .

Anmerkung : 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 zur Erstellung keine externen Bibliotheken .

Installation

Um die shmop-Funktionen benutzen zu können , 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

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

 
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_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 -- Gibt die Grösse des gemeinsamen Speicherblocks zurück
shmop_write -- Schreibt Daten in einen gemeinsamen Speicherblock