Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6313[/thread]

Hilfe mit flock() ganz ganz WICHTIG: Filehandle "merken"



<< >> 3 Einträge, 1 Seite
Gast Gast
 2004-06-06 16:47
#83063 #83063
Hallo!
ich habe folgendes problem:
ich habe zwei methoden:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub readFile{
my $file=shift;
open(FILE, "<$file");
my @array=<FILE>
chomp(@array);
return @array;
}
sub writeFile{
my $file=shift;
my $arrayPointer=shift;
open(FILE, ">$file");
print FILE join("\n" , @{$arrayPointer});
close FILE;
}


nun will ich dass diese Datei in der zwischenzeit gesperrt ist, das Problem ist jedoch, dass ich die Methoden für mehr als ein File gleichzeitig verwenden will!
In etwa so:

Code: (dl )
1
2
3
4
5
6
my @array1=readFile("../test.txt");
do something with @array1;
my @array2=readFile("../test2.txt");
do someting with @array2, eventuell mit @array1;
writeFile("../test2.txt, \@array2);
writeFile("../test1.txt, \@array1);


test.txt soll solange gesperrt bleiben bis text2.txt fertig ist.
Gruss

Bearbeitet von Crian: Code-Tags eingefügt\n\n

<!--EDIT|Crian|1086544537-->
Gast Gast
 2004-06-06 17:10
#83064 #83064
Verwende eine leere Text-Datei als Semaphore.
Will sagen: setze vor jedem Zugriff auf die operativen Dateien, einen Lock auf die leere Text-Datei und gib den Lock erst dann frei wenn die Arbeit an den operativen Dateien beendet ist.
alexus-777
 2004-06-07 16:03
#83065 #83065
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
use Fcntl qw(:flock);
open(FH, "+<", $path);
flock(FH, LOCK_EX);

#Datei aktualisieren

close(FH);


viel Glück
Gruß Alexander\n\n

<!--EDIT|alexus-777|1086610010-->
<< >> 3 Einträge, 1 Seite



View all threads created 2004-06-06 16:47.