XXXVI. ファイル改変監視関数(FAM)
導入
FAM はファイルやディレクトリを監視し、変更点を調査を行うアプリケーションに 通知します。FAM についての詳細な情報は http://oss.sgi.com/projects/fam/ で得られます。
PHP スクリプトは、この拡張モジュールにより提供される関数を用いて FAM に一連の ファイルを指定することができます。
FAM プロセスは、最初にアプリケーションから接続された時に開始され、 全ての接続がクローズされた時に終了します。
注意: この拡張モジュールは PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.1.0.
注意: この拡張モジュールは Windows 環境では利用できません。
インストール手順
PHP の FAM サポートを使用するには、
--with-fam[=DIR]
を指定して PHP をコンパイルする 必要があります。DIR は lib および include ディレクトリを含む ディレクトリの場所です。
実行時設定
設定ディレクティブは定義されていません。
リソース型
FAM モジュールでは二種類のリソース型を使用します。まず最初が FAM サービスとの接続を表すリソースで、これは fam_open() が返します。二番目はモニタリングリソースで、これは fam_monitor_XXX 関数が返します。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
表 1. FAM イベント定数
| 定数 | 説明 |
|---|---|
| FAMChanged ( integer ) | ファイルあるいはディレクトリの、fstat(1) で取得できる値のうちの 何かが変更されました。 |
| FAMDeleted ( integer ) | ファイルあるいはディレクトリが削除あるいはリネームされました。 |
| FAMStartExecuting ( integer ) | 実行可能ファイルが実行されました。 |
| FAMStopExecuting ( integer ) | 実行可能ファイルの実行が終了しました。 |
| FAMCreated ( integer ) | ディレクトリ内にファイルが作成されました。 |
| FAMMoved ( integer ) | このイベントは決して発生しません。 |
| FAMAcknowledge ( integer ) | fam_cancel_monitor() に対する応答イベントです。 |
| FAMExists ( integer ) | ファイルやディレクトリの監視を要求するイベントです。 ディレクトリが監視されている場合、ディレクトリおよびその中に 含まれるすべてのファイルについてのイベントが発生します。 |
| FAMEndExist ( integer ) | 最後の FAMEExists イベントの後に発生します。 |
- 目次
- fam_cancel_monitor -- 監視を終了する
- fam_close -- FAM 接続を閉じる
- fam_monitor_collection -- 指定したディレクトリにあるファイルの変更を監視する
- fam_monitor_directory -- ディレクトリの変更を監視する
- fam_monitor_file -- 通常のファイルの変更を監視する
- fam_next_event -- 次の待機中の FAM イベントを返す
- fam_open -- FAM デーモンへの接続をオープンする
- fam_pending -- 待機中の FAM イベントの有無を調べる
- fam_resume_monitor -- 中断された監視処理を再開する
- fam_suspend_monitor -- 監視を一時的に中断する