INOTIFY_ADD_WATCH - Linux手册页
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/。