■L29の rewind(); は意図不明。
ログファイルが壊れる(例えば 8424<>127.0.0.1420<>127.0.0.8420<>127.0.0.842の ように)から
入れたのなら、アイディアとしては◎だが、スマートな処理とはいえないかと。
■あと、排他制御にバグがあるのでは。
ロックがかかっていても、fopen(); も flock(); も、 warning や fatal error (noticeも) を吐かないため、
処理が続行する。排他制御になってもならなくてもこのスクリプトは処理を最後まで実行するので、flock(); は
ちゃんと働いてない。
実際には起こらないかも知れないが、論理上、ロックがかかっているために L32 の fgets(); が失敗して
$buf に false が入ってカウンターが0に戻る可能性がある。L26でロックが取れなかった場合、
つまり前のリクエストを処理中の可能性がある場合、書き込みをスキップするかスクリプトを終了
するかブロックモードで待機させる必要があると思う。http://jp.php.net/flockにあるとおり、flock(); は
失敗すると false を返す。
■同じ理由で、前のロックが邪魔してロックがかかっていないのに書き込みに進行してしまうことがある。
書き込みがいくつも重なると、dat の内容がが妙なことになる予感。ここらあたりを rewind(); が力技で
解消しているように見える。
ニュース
- 【W杯】ブラジルに敗れた森保監督「これからも世界一を目指して日本のために頑張りたい」★6 [ネギうどん★]
- 【W杯】塩貝健人、ブラジル巡る発言の意図を説明「ネイマールが点を取っていたのは前のことで、今じゃないだろと言いたかっただけ」★4 [Anonymous★]
- 【円安】1ドル162円台まで下落 円相場が39年半ぶりの円安ドル高水準に ★5 [ぐれ★]
- 【富士山】「考え方がズルい」市長発言にクライマー猛反発「アルピニストが育たなくなる」6000人超の反対署名を本日提出 ★2 [ぐれ★]
- 【広島】ネットギャンブルで8000万円損失 三原市の強殺容疑者の無職男(29) 借金苦か [ぐれ★]
- 【サッカーW杯】日本-ブラジル戦世帯平均視聴率は15・9% 月曜深夜に異例の高視聴率も…代表戦ワースト ★2 [鉄チーズ烏★]
- ブラジル「ジャップよえーw 評判倒れとはこのこと。ザイオンだけじゃんこのチームさあ!」 悔しい(´;ω;`) [592058334]
- ダブルクロス❌😅❌🏡
- 【訃報】円安、止まらない [943688309]
- 悲報...........ジャップン、出生率超低下で数十年後崩壊確定 [677076729]
- ベーシストだけど質問ある?
- 【悲報】片山さつき、ついに本性を現す「大学を今の半分に減らせ!高齢者の医療費負担も原則3割にしろ!」 [334972637]