Willkommen! Einloggen Ein neues Profil erzeugen

erweitert

übung 9.5 - dateilock

geschrieben von ann-kathrin 
übung 9.5 - dateilock
18.06.2010 22:21:38
wenn ich die dateien A und B nacheinander öffne und nacheinander beschreibe, dann wird immer nur die datei, die oben steht, also als erstes genannt wird, beschrieben. soll das so sein oder habe ich einen fehler in mein programm eingebaut?

ich habe zuerst die dateien nacheinander geöffnet, dann für jede einen schreiblock eingebaut und dann versucht, in zwei befehlen (einen für jede datei) beide dateien mit print DATEI "text" zu beschreiben.
Re: übung 9.5 - dateilock
18.06.2010 22:32:54
Ne, da hast Du einen Fehler in Deinem Programm.

Generell sollte man übrigens immer möglichst schnell nach dem Öffnen einer Datei den entsprechenden Lock setzen - aber das ist nicht der Grund für das Verhalten Deines Programms.

Poste doch hier man eines Deiner Programme (so schwierig ist die Aufgabe ja nicht).

Grüße
Tobias Nopper
Lehrstuhl für Betriebssysteme
Re: übung 9.5 - dateilock
19.06.2010 11:27:36
use Fcntl;

while (1) {
sysopen(A,"dateia.txt",O_WRONLY|O_CREAT|O_APPEND);
sysopen(B,"dateib.txt",O_WRONLY|O_CREAT|O_APPEND);

flock A,2;
flock B,2;

print A "Text aus Programm 1\n";
print B "Text aus Programm 1\n";

if (flock A,2) {print "lock erfolgt\n";}
if (flock B,2) {print "lock erfolgt\n";}

close A;
close B;
}
Re: übung 9.5 - dateilock
19.06.2010 11:49:12
Bin gerade unterwegs, daher nur kurz:

Der doppelte Lock dürfte das Problem sein. Versuche einfach
flock A,2;
print "A erfolgreich";
flock B,2;
print "B erfolgreich";

Denke daran, dass das Programm anhält, bis der Lock erteilt wurde.

Grüße
Tobias Nopper
Lehrstuhl für Betriebssysteme
Sorry, Sie haben nicht die erforderliche Berechtigung, um in diesem Forum zu schreiben.