flock

(PHP 3>= 3.0.7, PHP 4 )

flock -- 汎用のファイルロックを行う

説明

bool flock ( int fp, int operation, int [wouldblock])

PHP は、恣意的にファイルをロックする汎用の手段を提供します。 (これは、アクセスする全プログラムが同一のロックの方法を使用する 必要があり、そうでない場合は動作しないことを意味します)

flock()は、fpを用いて 操作を行います。これは、オープンされたファイルポインタである必要が あります。operationは、次の値のどれかとな ります。

flock()により、(ほとんどのUNIXやWindowsさえ含む) ほとんど全てのプラットフォームで使用可能な簡易な読み手/書き手モデ ルが実現されます。ロックをブロックモードとする場合(EWOULDBLOCK errno 条件)にオプションの3番目の引数にTRUEを設定します。

flock() は成功時にTRUE、 (例えばロックが確保できなかった場合等の)エラー時にFALSEを返します。

注意 flock()は、ファイルポインタを必要とするため、 (fopen()へ引数"w"または"w+"を指定して)書き込 みモードでオープンすることにより丸めるファイルにアクセス保護する 特別なロックファイルを使用する必要があるかもしれません。

警告

flock()はNFS及び他の多くのネットワークファイ ルシステムでは動作しません。詳細についてはオペレーティングシステ ムのドキュメントを確認下さい。

いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、同じサーバーインスタンスの並 列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に flock()を使用することはできません!