Beschreibung
bool
flock
( resource handle, int operation [, int wouldblock])
PHP
liefert
einen
portablen
Weg
,
Dateien
in
einer
"
beratenden
"
Art
und
Weise
zu
verriegeln
.
D.h
.
alle
zugreifende
Programme
müssen
die
gleiche
Art
und
Weise
der
Verriegelung
benutzen
,
oder
es
funktioniert
nicht
.
flock(
)
arbeitet
mit
handle
,
welcher
ein
existierender
Dateizeiger
sein
muss
.
Der
Parameter
operation
bestimmt
die
Art
der
Verriegelung
und
kann
einen
der
folgenden
Werte
annehmen
:
-
Um
eine
verteilte
,
nur
lesende
Verriegelung
zu
erhalten
,
setzten
Sie
operation
auf
LOCK_SH
(
bzw
.
1
vor
PHP
4.0.1
)
.
-
Um
eine
exklusive
,
nur
schreibende
Verriegelung
zu
erhalten
,
setzen
Sie
operation
auf
LOCK_EX
(
bzw
.
2
vor
PHP
4.0.1
)
.
-
Um
eine
Verriegelung
freizugeben
(
lesend
oder
schreibend)
,
setzten
Sie
operation
auf
LOCK_UN
(bzw
.
3
vor
PHP
4.0.1
)
.
-
Wenn
Sie
Zugriffe
während
der
Verriegelung
durch
flock(
)
erlauben
wollen
,
fügen
Sie
LOCK_NB
(bzw
.
4
vor
PHP
4.0.1
)
zu
operation
hinzu
.
flock(
)
erlaubt
es
Ihnen
ein
einfaches
Leser
/
Schreiber
Modell
zu
erstellen
,
welches
auf
fast
jeder
Plattform
benutzt
werden
kann
(inkl
.
den
meisten
UNIX-Derivaten
und
auch
Windows
)
.
Das
optionale
dritte
Argument
ist
auf
TRUE
gesetzt
,
wenn
die
Verriegelung
sperren
sollte
(
EWOULDBLOCK
errno
Bedingung
)
.
flock(
)
gibt
TRUE
bei
Erfolg
,
FALSE
wenn
ein
Fehler
auftrat
(z.B
.
wenn
eine
Verriegelung
nicht
erstellt
werden
konnte
)
zurück
.
Anmerkung
:
Da
flock(
)
einen
Dateizeiger
benötigt
,
könnten
Sie
eine
spezielle
Sperrdatei
benutzen
,
um
den
Zugriff
auf
eine
Datei
zu
schützen
,
welche
Sie
mittels
Öffnen
im
Schreibmodus
(mit
dem
Argument
"w
"
or
"w+
"
von
fopen(
)
)
kürzen
wollen
.
Warnung
|
flock(
)
funktioniert
nicht
auf
NFS
und
verschiedenen
anderen
vernetzten
Dateisystemen
.
Für
weitere
Detail
konsultieren
Sie
bitte
Ihre
Betriebssystemdokumentation
.
Bei
einigen
Betriebssystemen
ist
flock(
)
auf
dem
Prozesslevel
implementiert
.
Wenn
Sie
ein
multithreaded
Server
API
wie
ISAPI
benutzen
können
Sie
sich
nicht
auf
flock(
)
verlassen
,
um
Dateien
vor
anderen
PHP-Skripten
zu
schützen
,
welche
in
parallelen
Threads
der
gleichen
Server-Instanz
laufen
!
flock(
)
wird
antiquierten
Dateisystemen
wie
FAT
und
dessen
Derivate
nicht
unterstützt
,
und
gibt
deshalb
in
solchen
Umgebungen
immer
FALSE
zurück
(Dies
ist
speziell
bei
Windows
98
Benutzern
der
Fall
)
.
|