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

看板Perl作者 (kuangs)時間12年前 (2013/03/29 15:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
小弟目前在修改網站後端程式 採用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 這個變數指向一個空的檔案 可是我不知道這檔案是要做甚麼的......... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.51.217.232
文章代碼(AID): #1HLKGBY_ (Perl)
文章代碼(AID): #1HLKGBY_ (Perl)