fcntl()でのshared/exclusive lockだと read.cgiがひっきりなしに呼ばれていると
bbs.cgi等の書き込み側がexclusive lockを取得できなくなってしまう可能性もあるな...
となると 書き込み側では
1. まず別のファイル名でオープンして(例えば"987654321.new")そこに書き込む
2. 書き込みが終わったら rename("987654321.new", "987654321.dat") を実行
って感じでやってもらう方がいいのかも これならread.cgi側でのlockは
考えなくてもいいんだな bbs.cgi等の書き込み側の排他制御は必要だろうけど