uv_fs_poll_t — FS Pollハンドル

FS Pollハンドルは、指定したパスの変更を監視できます。uv_fs_event_tとは異なり、FS Pollハンドルはstatでファイルの変更を検出するため、FS Eventハンドルが動作しないファイルシステムでも使えます。

データ型

type uv_fs_poll_t

FS Pollハンドルの型です。

typedef void (*uv_fs_poll_cb)(uv_fs_poll_t *handle, int status, const uv_stat_t *prev, const uv_stat_t *curr)

次の関数へ渡すコールバックです: uv_fs_poll_start()。ハンドルを開始した後、監視対象のパスに変更があるたびに呼び出します。

コールバックは、status < 0で呼び出されます。これは、pathが存在しない、またはアクセスできない場合です。監視は停止しませんが、ファイルの作成やエラーの原因が変わるなど、何か変化が起きるまではコールバックを再度呼び出しません。

次の条件、status == 0の場合、コールバックは変更前と変更後のuv_stat_t構造体へのポインターを受け取ります。これらはコールバックの実行中だけ有効です。

公開メンバー

該当なし

関連項目

次の型のuv_handle_tメンバーも適用されます。

API

int uv_fs_poll_init(uv_loop_t *loop, uv_fs_poll_t *handle)

ハンドルを初期化します。

int uv_fs_poll_start(uv_fs_poll_t *handle, uv_fs_poll_cb poll_cb, const char *path, unsigned int interval)

次のパス、pathのファイルに変更があるかを、intervalミリ秒ごとに検査します。

注記

移植性を最大限に確保するには、数秒単位の間隔を使ってください。1秒未満の間隔では、多くのファイルシステムですべての変更を検出できません。

int uv_fs_poll_stop(uv_fs_poll_t *handle)

ハンドルを停止します。以後、コールバックを呼び出しません。

int uv_fs_poll_getpath(uv_fs_poll_t *handle, char *buffer, size_t *size)

ハンドルが監視しているパスを取得します。バッファはユーザーが事前に確保する必要があります。成功時は0、失敗時は0未満のエラーコードを返します。成功時は、bufferにパスが入り、sizeにその長さが入ります。バッファが十分な大きさでない場合は、UV_ENOBUFSを返し、sizeを必要なサイズに設定します。

バージョン1.3.0での変更: 返す長さに終端ヌルバイトを含めなくなり、バッファもヌル終端しなくなりました。

バージョン1.9.0での変更: 次のエラー、UV_ENOBUFSの場合、返す長さに終端ヌルバイトを含めるようになりました。また、成功時にはバッファをヌル終端します。

関連項目

次の型のuv_handle_tAPI関数も適用されます。