PHP は、恣意的にファイルをロックする汎用の手段を提供します。
(これは、アクセスする全プログラムが同一のロックの方法を使用する
必要があり、そうでない場合は動作しないことを意味します)
flock()
は、
fp
を用いて 操作を行います。これは、オープンされたファイルポインタである必要が あります。
operation
は、次の値のどれかとな ります。
共有ロック(読み手)とするには、
operation
に LOCK_SH(PHP 4.0.1より前の場合は1に設定します)をセットします。
排他的ロック(書き手)とするには、
operation
にLOCK_EX(PHP 4.0.1より前の場 合は2に設定します)をセットします。
(共有または排他的)ロックを開放するには、
operation
にLOCK_UN(PHP 4.0.1より前の場 合は3に設定します)をセットします。
ロック中に
flock()
でブロックを行いたくない場 合は、
operation
に LOCK_NB ( PHP 4.0.1 より前の場合は 4 に設定します)を加えます。
flock()
により、(ほとんどのUNIXやWindowsさえ含む) ほとんど全てのプラットフォームで使用可能な簡易な読み手/書き手モデ
ルが実現されます。ロックをブロックモードとする場合(EWOULDBLOCK errno 条件)にオプションの3番目の引数に
TRUE
を設定します。
flock()
は成功時に
TRUE
、 (例えばロックが確保できなかった場合等の)エラー時に
FALSE
を返します。
注意 flock() は、ファイルポインタを必要とするため、 ( fopen() へ引数"w"または"w+"を指定して)書き込 みモードでオープンすることにより丸めるファイルにアクセス保護する 特別なロックファイルを使用する必要があるかもしれません。
警告 |
|