Manpages

名 前

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/ に 書 か れ て い る 。