[Namazu-devel-ja 1634] ディスクの空き容量がない場合に mknmz でエラーとなるように
Tadamasa Teranishi
yw3t-trns @ asahi-net.or.jp
2007年 8月 4日 (土) 16:45:14 JST
寺西です。
ディスクの空き容量がない場合に mknmz がエラーも出さずに平気な顔して
終了すると指摘を受けました。
# まぁ、エラーチェックしてないから、そうだろうけど...。
ということで対策なんですが。
全ての書き込み時にチェックすべきなんですが、その修正は大変なので、
util::fclose の中で IO::File を close する前にそのハンドルで
エラーが発生したか否かで判定することにしました。
もちろん、これで全てのチェックができるわけではないのですが、
util::fclose を呼び出す部分だけでもチェックができます。
そして、このチェックだけでも十分に目的は果たせるものと思います。
とりあえず差分です。
--- pl/util.pl.org 2006-02-06 03:53:30.000000000 +0900
+++ pl/util.pl 2007-08-04 15:56:34.000000000 +0900
@@ -72,6 +72,8 @@ sub fclose ($) {
if (ref $arg) {
if ($arg =~ /^(IO::File|FileHandle)/) {
my $fh = $arg;
+ $fh->flush;
+ cdie("write error: $!\n") if ($fh->error);
$fh->close();
return undef;
}
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E
Namazu-devel-ja メーリングリストの案内