Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all bug

名前

       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() の呼び出しが成功すると、 pathname に対応するファイルシステムオブジェク
       トに対する、  一意な監視対象ディスクリプター (watch descriptor) を、 対象の inotify インス
       タンスに対して返す。 そのファイルシステムオブジェクトが対象の inotify インスタンスによって
       以前に監視されていない場合には、 監視対象ディスクリプターは新規に割り当てられる。 ファイル
       システムオブジェクトが (おそらく同じオブジェクトに対する異なるリンク経由で) すでに監視され
       ている場合には、 既存の監視に対するディスクリプターが返される。

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

返り値

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

エラー

       EACCES 指定されたファイルに対する読み出しアクセスが許可されていない。

       EBADF  指定されたファイルディスクリプターが有効ではない。

       EFAULT pathname が指すアドレスがプロセスがアクセスできるアドレス空間外である。

       EINVAL 指定されたイベントマスクに有効なイベントが含まれていない。  もしくは  fd が inotify
              ファイルディスクリプターではない。

       ENAMETOOLONG
              pathname が長過ぎる。

       ENOENT pathname のディレクトリ部分の構成要素が、存在しないか、  リンク切れのシンボリックリ
              ンクである。

       ENOMEM カーネルメモリーが十分になかった。

       ENOSPC inotify 監視対象の総数がユーザーが追加できる上限に達していた。 もしくは、必要な資源
              の割り当てにカーネルが失敗した。

バージョン

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

準拠

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

関連項目

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

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。