flock
<?php
/*
flock
ファイルのロック処理を行える関数です。
あるファイルを作業しているときに、誰かが作業中のファイルを
編集すると思った通りの結果が得られないことがあります。
この同期処理を解消するために用意されたのがflock関数となります。
戻り値(bool) = flock(対象となるファイルのハンドル, ロックのオプション);
戻り値は成功した場合はtrue、失敗した場合はfalse
LOCK_SH:ロック共有
読み取りは許可しても、書き込みをすることはできないようにします。
LOCK_EX:排他的ロック
ロックを解除するまで他の人がロックをすることができません。
LOCK_UN:ロック解除
LOCK_NB:ロック中にflockでブロックさせません
「LOCK_SH」|LOCK_NB」のように他の値と同時に指定します。
*/
$path = "sample.txt";
//ファイルを読み取り専用で開きます
$fp = fopen($path, 'r');
print "ファイルを開きました。<br />";
if(flock($fp, LOCK_EX))
{
print "ロックしました。<br />";
flock($fp, LOCK_UN);
print "ロックを解除しました。<br />";
}
else
{
print "ロックに失敗しました。<br />";
}
//ファイルを閉じます。
fclose($fp);
print "ファイルを閉じました。<br />";
/*
[出力結果]
ファイルを開きました。
ロックしました。
ロックを解除しました。
ファイルを閉じました。
*/
?>
|
|