INOTIFY_ADD_WATCH

Section: Linux Programmer's Manual (2)
Updated: 2006-02-07
Index JM Home Page roff page
 

名前

inotify_add_watch - 初期化済み inotify インスタンスに監視対象を追加する  

書式

#include <sys/inotify.h>

int inotify_add_watch(int fd, const char *pathname, uint32_t mask);  

説明

inotify_add_watch() は、 pathname で指定された位置にあるファイルを監視する監視アイテム (watch) の新規追加、 または既存の監視アイテムの変更を行う。 呼び出し元は、監視対象のファイルに対する読み出し許可を 持っていなければならない。 fd 引き数は、変更を行う監視対象リスト (watch list) を持つ inotify インスタンスを参照するファイルディスクリプタである。 pathname のどのイベントを監視するかは、引き数のビットマスク mask で指定する。 mask に設定できるビットの説明については inotify(7) を参照のこと。

inotify_add_watch() の呼び出しが成功すると、変更対象の inotify インスタンスで pathname に対応付けられる一意な監視対象ディスクリプタ (watch descriptor) を返す。 pathname がその inotify インスタンスに追加されていなければ、 監視対象ディスクリプタが新規に割り当てられる。 pathname がすでに監視対象になっていれば、既存の監視アイテムに対する ディスクリプタが返される。

これ以降に inotify ファイルディスクリプタから read(2) を行うと、監視対象ディスクリプタが返される。 これらの read() を行うと、ファイルシステムイベントを示す inotify_event 構造体が読み出される。返された監視対象ディスクリプタにより、 どのオブジェクトでそのイベントが発生したかを特定できる。  

返り値

成功すると、 inotify_add_watch() は非負の監視対象ディスクリプタを返す。 エラーの場合、-1 を返し、 errno を適切に設定する。  

エラー

EACCES
指定されたファイルに対する読み出しアクセスが許可されていない。
EBADF
指定されたファイルディスクリプタが有効ではない。
EFAULT
pathname が指すアドレスがプロセスがアクセスできるアドレス空間外である。
EINVAL
指定されたイベントマスクに有効なイベントが含まれていない。 もしくは fd が inotify ファイルディスクリプタではない。
ENOMEM
カーネルメモリが十分になかった。
ENOSPC
inotify 監視対象の総数がユーザが追加できる上限に達していた。 もしくは、必要な資源の割り当てにカーネルが失敗した。
 

バージョン

inotify は Linux カーネル 2.6.13 に組み込まれた。  

準拠

このシステムコールは Linux 独自である。  

関連項目

inotify_init(2), inotify_rm_watch(2), inotify(7)


 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:46 GMT, November 19, 2007