[问题] 读取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