SplFileObject::flock
(PHP 5 >= 5.1.0, PHP 7)
SplFileObject::flock — 簡易なファイルロックを行う
説明
public SplFileObject::flock
( int $operation
[, int &$wouldblock
] ) : bool
flock() と同じ簡易な方法でファイルをロックもしくはロック解除する。
パラメータ
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 "ロックを取得できませんでした!";}?>