> 2004/07/07 (水) 12:17:28 ◆ ▼ ◇ [mirai]> > まだロックすらしてない(;´Д`)現在は非常に不味いコードだよ
> > ちなみにこれは現在だとcsv1.closeでDBが空になるんだけど
> > csv2.closeで再び元に戻ってる
> あくまで漏れの意見だがロックはopen時にかけた方がいいと思う
> でないと最初に書いたヤシのデータが無効になっちゃったりすると思うので
> 例えばcsv1.closeがcsv1.write("うんこ")とかだった場合な
> つか、この手の話は考え出すとキリがないな(;´Д`)
> 基本的に読み取り専用以外のモードならロックすべきというのが漏れの考えだが
> あと書き出す途中で死んだ場合のことを考えると一旦テンポラリに書いてそれを
> リネームするのが安全だろうな
長い間ファイル開きっぱなしだとSunOS4.Xで死ぬとか聞いたよ(;´Д`)
基本的に読み取り専用以外のモードならロックすべきには賛成だけど実際に書き込みのはcloseメソッド内部なのでなんともいえない
あといったんテンポラリに出してrenameなりcopy;ulinkなりはしてるよ
Ruby/tempfile.rbによさげな解決法があるみたいだ
参考:2004/07/07(水)12時13分26秒