Flockとは? わかりやすく解説

flock

(PHP 4, PHP 5)
flock — 汎用のファイルロックを行う

説明

bool flock ( resource handle, int operation [, int &wouldblock] )
PHP は、恣意的にファイルをロックする汎用の手段を提供します。 (これは、アクセスする全プログラムが同一のロックの方法を使用する 必要があり、そうでない場合は動作しないことを意味します)
注意: flock() 関数は Windows 環境下では必ず行ってください。
flock()は、handleを用いて 操作を行います。これは、オープンされたファイルポインタである必要が あります。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を設定します。 ロックは fclose() でも解放されます (スクリプトが終了した場合も自動的にコールされます) 。
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例 604. flock() example
<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // 排他的ロックを行う
   fwrite($fp, "Write something here\n");
   flock($fp, LOCK_UN); // ロックを解放する
} else {
   echo "Couldn't lock the file !";
}

fclose($fp);

?>


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

警告
flock()はNFS及び他の多くのネットワークファイ ルシステムでは動作しません。詳細についてはオペレーティングシステ ムのドキュメントを確認ください。 いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、同じサーバーインスタンスの並 列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に flock()を使用することはできません!
flock() is not supported on antiquated filesystems like FAT and its derivates and will therefore always return FALSE under this environments (this is especially true for Windows 98 users). flock()FATのような 旧式のファイルシステムではサポートされていないため、 そのような環境の場合は常にFALSEを返すことになります。 (これは特にWindows98ユーザーにとって常に真です)





固有名詞の分類

このページでは「PHP関数リファレンス」からFlockを検索した結果を表示しています。
Weblioに収録されているすべての辞書からFlockを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からFlockを検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Flock」の関連用語

Flockのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Flockのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS