(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::flock — 簡易なファイルロックを行う
$operation
, int &$wouldBlock
= null
): boolflock() と同じ簡易な方法でファイルをロックもしくはロック解除する。
operation
operation
は次のいずれかです:
LOCK_SH
。
LOCK_EX
。
LOCK_UN
。
ロックを試みている間に flock() がブロックすべきでない場合は、上の操作のいずれかに LOCK_NB
をビットマスクとして追加できます。
wouldBlock
ロックがブロックされる場合 (errno が EWOULDBLOCK である)、true
にセットします。
成功した場合に true
を、失敗した場合に false
を返します。
例1 SplFileObject::flock() の例
<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // 排他ロックを行う
$file->ftruncate(0); // ファイルを丸める
$file->fwrite("ここで何かを書き出します\n");
$file->flock(LOCK_UN); // ロックを解除する
} else {
echo "ロックを取得できませんでした!";
}
?>