SplFileObject::flock
(PHP 5 >= 5.1.0, PHP 7)
SplFileObject::flock — 簡易なファイルロックを行う
説明
public SplFileObject::flock
( int
$operation
[, int &$wouldblock
] ) : boolflock() と同じ簡易な方法でファイルをロックもしくはロック解除する。
パラメータ
-
operation -
operationは次のいずれかです:-
共有ロック (読み手) にするには
LOCK_SH。 -
排他ロック (書き手) にするには
LOCK_EX。 -
(共有もしくは排他) ロックを解除するには
LOCK_UN。 -
ロック中にブロックしないようにするには
LOCK_NB(Windows ではサポートされません)。
-
共有ロック (読み手) にするには
-
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 "ロックを取得できませんでした!";
}
?>