INOTIFY_ADD_WATCH - Linux手册页

时间:2019-08-20 17:58:52  来源:igfitidea点击:

Linux程序员手册 第2部分
更新日期: 2020-04-11

名称

inotify_add_watch-将手表添加到初始化的inotify实例

语法

#包括

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

说明

inotify_add_watch()为在路径名中指定位置的文件添加新监视或修改现有监视;调用者必须对此文件具有读取权限。 fd参数是一个文件描述符,它引用要修改其监视列表的inotify实例。在mask bit-mask参数中指定要监视的路径名事件。有关可在掩码中设置的位的说明,请参见inotify(7)。

成功调用inotify_add_watch()会为该inotify实例返回一个唯一的监视描述符,该描述符对应于与路径名相对应的文件系统对象(inode)。如果该inotify实例先前未监视文件系统对象,则将重新分配监视描述符。如果文件系统对象已经被监视(也许通过到同一对象的不同链接),则返回现有监视的描述符。

监视描述符由inotify文件描述符中的稍后read(2)返回。这些读取将获取指示文件系统事件的inotify_event结构(请参见inotify(7))。该结构中的监视描述符标识发生事件的对象。

返回值

成功后,inotify_add_watch()返回一个监视描述符(非负整数)。错误时,返回-1并正确设置errno。

错误说明

EACCES
不允许对给定文件的读取访问。
EBADF
给定的文件描述符无效。
EEXIST
掩码包含IN_MASK_CREATE,并且路径名引用同一fd已在监视的文件。
EFAULT
路径名指向进程的可访问地址空间之外。
EINVAL
给定的事件掩码不包含任何有效事件;或遮罩同时包含IN_MASK_ADD和IN_MASK_CREATE;或fd不是inotify文件描述符。
ENAMETOOLONG
路径名太长。
ENOENT
路径名中的目录组件不存在或为悬挂的符号链接。
ENOMEM
内核内存不足。
ENOSPC
达到了对inotify监视总数的用户限制,或者内核未能分配所需的资源。
ENOTDIR
掩码包含IN_ONLYDIR,并且路径名不是目录。

版本

Inotify已合并到2.6.13 Linux内核中。

遵循规范

此系统调用是特定于Linux的。

示例

参见inotify(7)。

另外参见

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

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/