opi: Paralleler Schreibzugriff auf eine Datei ohne flock

Beitrag lesen

Hallo Christoph,

Wenn zwei (oder mehr) Prozesse gleichzeitig schreibend auf ein und dieselbe Datei zugreifen, kann es passieren, daß sie ihre Eingaben gegenseitig überschreiben. flock soll genau das verhindern.

das kann ich nicht ganz nachvollziehen. Wie sollen sie sich
gegenseitig überschreiben, wenn sie völlig andere Zeilen bearbeiten
und sich beim überschreiben an feste Konventionen halten wie zum
Beispiel eine feste Spaltenlänge?

Datenbankprozesse warten auch nicht aufeinander, wenn sie 100 GB
große Datendateien bearbeiten. Oder doch?

use Fcntl qw(:DEFAULT :flock);

Hier hast du zwar das richtige Modul angesprochen, aber im Script passiert dann nichts.

Natürlich passiert was. Mittels sysopen wird die Datei ./testdatei
im Lese- und Schreibmodus mit O_RDWR geöffnet.

sysopen(FILE,"./testdatei",O_RDWR) or die $!;

Ups. Warum nimmst du sysopen?

Der Lockmechanismus kann nur einwandfrei funktionieren, wenn ich ihn
in all meinen Perlskripts einsetze. Hier locke ich zwar nichts, aber
es ist halt mein Standardmodul zum Öffnen von Dateien.

Greez,
opi

--
Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|