ファイルハンドルを伴わないファイル関数の排他制御(flock) 同時に複数の読み書きが行われる可能性のあるファイルには、 何らかの方法で排他制御(ロック)を行う必要があります。 PHPには flock というファイルロック関数がありますが、 file などのファイルハンドルを伴わないファイル関数には直接適用することが出来ません。 このような場合、下記に示すような方法で排他制御を行うことが出来ます。
lock.txt は、排他制御専用のダミーファイルなので中身が空でも構いません。要は、実際に読み書きするファイルにロックをかけるのではなく、共通のロック専用ファイルにロックをかけることにより排他制御を行うということです。上記赤字部分でファイル操作を行う場合、更なる排他制御処理の記述は必要ありません。 2003/01/23 |