2008年05月27日

CodeIgniter その4

ファイルヘルパはありがちなミスを犯していた。

flock($fp, LOCK_EX);
fwrite($fp, $data);
flock($fp, LOCK_UN);
fclose($fp);

ファイルを書き込む前にロックを解除してはいけない。
ちゃんとテストすればわかるけど、これはロックの意味がなくて、
fwrite はバッファリングされるためロックを解除した段階ではまだファイルに書き込んでおらず、
ロックを解除する前に fflush を呼ぶか、あるいはロックを解除しないまま fclose で閉じて、
確実にファイルに書き込まれた後でロックを解除する必要がある。
posted by oov at 06:43| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がない ブログに表示されております。