Hansi: Perl gleichzeitiger Dateizugriff

Beitrag lesen

Hallo,

möchte meinen, daß dies die Serverleistung unnötig in Anspruch nimmt.

Auf jeden Fall Danke.

Vorschlag:

Konstanten fuer flock()

$LOCK_SH = 1;
$LOCK_EX = 2;
$LOCK_NB = 4;
$LOCK_UN = 8;

##########

open (DATEI, ">>datei.ext") or die ("$!: can‚t open datei.ext\n");
flock (DATEI, $LOCK_EX) or die ("$!: can‚t get lock\n");
print (DATEI "$string\n");

flock (DATEI, $LOCK_UN);
close (DATEI);

Also wie schon gesagt, ich kenne den Befehl flock nicht 100%ig. Wenn ich Deinen Vorschlag rictig interpretiere, stirbt das Skript, wenn es die Datei nicht in Beschlag nehmen kann. Folgedessen, sind damit auch die Daten verloren, die durch das Skript ermittelt wurden und in der Datei gespeichert werden sollen. Genau das ist es was ich vermeiden möchte. Es sollen so gut und so sicher wie alle Daten gespeichert werden.

Das mit der Serverleistung sehe ich nicht so. Da im besten Fall, die Funktion nur 1 mal durchflogen wird. Wenn dieser, eher unwahrscheinliche, Fall eintritt, daß zwei oder mehr User gleichzeitig auf das Skript zugreifen, werden diese lediglich in eine Warteschleife gestellt. (zudem hat Cheatah in der vorangegangenen Mitteilung noch eine Verbesserung eingebracht, mit der man die Datei nicht mehr öffnen muß).

habe so bis jetzt noch keine bösen Überraschungen erlebt. :-)

Noch einmal Danke ür Deinen Hinweis. Ich habe so auf jeden Fall ein bißchen mehr dazugelernt. Ich bin mir auch sicher, daß ich Deine Info mit Sicherheit in einem meiner Skripts verwenden kann.

Gruß Hansi