[問題] 讀取XML 導致檔案被清空???

作者: kuangs (kuangs)   2013-03-29 15:34:33
小弟目前在修改網站後端程式 採用XML檔來存資料
目前發現一個問題 不定時
(有時候一天一次 有時候兩次 有時候一個禮拜都不會發生)
會造成我的XML檔案被清空
找了很多可能性 後來懷疑 "有可能" 是Perl 在 讀/寫 XML時 造成的問題
但是卻找不到證據 或是 BUG點
想請問 各位是否有人也碰到類似問題 ???
或是 有甚麼方法可以釐清問題 謝謝
下面擷取部分程式碼(這兩段程式碼 不是我自己寫的)
sub XMLwrite
{
my ($ref, $filename)=@_;
my $availramdsk=getAvailRamDiskSize();
if ( $availramdsk < 100 ){return;}
if ( !open(XMLLOCK, "> $gXMLLOCK") ){return;}
flock(XMLLOCK, 2);
if ( !open(XMLFILE, "> $filename") ){return;}
my $result=XMLout($ref);
print XMLFILE $result;
close XMLFILE;
flock(XMLLOCK, 8);
close XMLLOCK;
}
sub XMLread
{
my ($filename)=@_;
my $XMLEVERCORRUPTED=0;
if ( !(-e $filename) || (-z $filename) ){$XMLEVERCORRUPTED = 1;return;}
if ( $XMLEVERCORRUPTED ){return;}
if ( !open(XMLLOCK, "< $gXMLLOCK") ){return;}
flock(XMLLOCK, 2);
my $ref=XMLin($filename, forcearray=>1);
flock(XMLLOCK, 8);
close XMLLOCK;
return $ref;
}
$gXMLLOCK 這個變數指向一個空的檔案
可是我不知道這檔案是要做甚麼的.........

Links booklink

Contact Us: admin [ a t ] ucptt.com