SplFileObject::flock
簡易なファイルロックを行う
説明
public bool SplFileObject::flock(int $operation
, int &$wouldBlock
= null
)
パラメータ
-
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 "ロックを取得できませんでした!";
}
?>