« streamWrapper::stream_flush
streamWrapper::stream_metadata »

streamWrapper::stream_lock

(PHP 5, PHP 7, PHP 8)

streamWrapper::stream_lock — ファイルのアドバイザリ・ロック

説明

public function streamWrapper::stream_lock(int $operation): bool

このメソッドは、flock() に対応してコールされます。また file_put_contents() (flags が LOCK_EX を含む場合)、 stream_set_blocking() がコールされたときやストリームを閉じるとき (LOCK_UN) にもコールされます。

パラメータ

operation

operation は以下のいずれかとなります。

  • LOCK_SH 共有ロック (読み込み) を確保します。

  • LOCK_EX 排他ロック (書き込み) を確保します。

  • LOCK_UN ロック (共有あるいは排他) を解放します。

上記の操作のいずれかに、ビットマスクとして LOCK_NB を追加することもできます。 ロック取得の試行中にブロックさせたくない場合に使います (Windows ではサポートしていません)。

戻り値

成功した場合に true を、失敗した場合に false を返します。

エラー / 例外

このメソッドのコールに失敗した場合 (実装されていないなど) は E_WARNING を発行します。

参考

  • stream_set_blocking() - ストリームのブロックモードを有効にする / 解除する
  • flock() - 汎用のファイルロックを行う

関連キーワード:
ロック   stream   streamWrapper   アドバイザリ   lock   operation   flock   blocking   ストリーム   共有   確保   排他   ブロック   flush   metadata   contents   flags   読み込み   書き込み   解放   上記   操作   ビット   マスク   試行
関連する関数・ページ:
function.stream-supports-lock   streamwrapper.stream-close   function.flock   splfileobject.flock   streamwrapper.stream-eof   streamwrapper.stream-read