Leser: 17
1
2
3
4
5
6
7
8
9
10
11
12
open (DAT2 , "> datei.tmp") ;
flock(DAT2,2) ;
open (DAT1 , "< datei.org") ;
if ( id==getid)
change && print DAT2
else
print DAT2
close(DAT1) ;
close(DAT2) ;
rename(datei.org,datei.bak) ;
rename(datei.tmp,datei.org) ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
sub BACKUP { my $quelle = shift || ''; return "$quelle No such file" if !-f $quelle; my $auf; local *QUELLE; open (QUELLE,"<$quelle") or return "$quelle $!"; binmode (QUELLE); local *BACKUP; open (BACKUP,">$quelle.bak") or return "$quelle.bak $!"; binmode (BACKUP); my $puffer; print BACKUP $puffer while (sysread QUELLE,$puffer,4096); close (BACKUP); close (QUELLE); return ''; }
2011-12-04T07:23:48 markyich öffene einfach zusätzlich ein anderes File vorher per flock mit dem nichts passiert, ausser dem lock - so kann man die ganzen nachfolgenden Aktionen auf einmal schützen
2011-12-04T13:07:46 pqsicher löst es das problem