PHP Inotify函数
inotify扩展提供了以下函数:inotify_init(),inotify_add_watch()和inotify_rm_watch()。
由于C的inotify_init()函数返回一个文件描述符,PHP的inotify_init()函数返回一个可用于标准流函数的流资源:stream_select(),stream_set_blocking()和fclose()。inotify_read()可以替代C方式的读取inotify事件。
此扩展需要Linux 2.6.13或更新版本和最新的libC。
此扩展没有在php.ini中定义的配置指令。
此扩展可以定义由inotify_init()函数返回的流资源。
预定义常量
这些常量由此扩展定义,只有当扩展程序已经编译到PHP中或在运行时动态加载时才可用。
inotify常量可用于inotify_add_watch()并/或由inotify_read()返回。
- IN_ACCESS (整数) - 文件被访问(读取)(*)
-
IN_MODIFY (整数) - 文件被修改(*)
-
IN_ATTRIB (整数) - 元数据被更改(例如权限,修改时间等)(*)
-
IN_CLOSE_WRITE (整数) - 被打开以进行写操作的文件已关闭(*)
-
IN_CLOSE_NOWRITE (整数) - 未被打开进行写操作的文件已关闭(*)
-
IN_OPEN (整数) - 文件被打开(*)
-
IN_MOVED_TO (整数) - 文件移动到监视目录中(*)
-
IN_MOVED_FROM (整数) - 文件从监视目录中移出(*)
-
IN_CREATE (integer) − 文件或目录在被监视的目录中创建 (*)
-
IN_DELETE (integer) − 文件或目录在被监视的目录中被删除 (*)
-
IN_DELETE_SELF (integer) − 被监视的文件或目录被删除
-
IN_MOVE_SELF (integer) − 被监视的文件或目录被移动
-
IN_CLOSE (integer) − 等同于 IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
-
IN_MOVE (integer) − 等同于 IN_MOVED_FROM | IN_MOVED_TO
-
IN_ALL_EVENTS (integer) − 所有上述常量的位掩码
-
IN_UNMOUNT (integer) − 包含被监视对象的文件系统被卸载
-
IN_Q_OVERFLOW (整数) - 事件队列溢出(wd为-1)
-
IN_IGNORED (整数) - 监视被移除(通过inotify_rm_watch()显式地移除或因为文件被删除或文件系统卸载)
-
IN_ISDIR (整数) - 此事件的主体是一个目录
-
IN_ONLYDIR (整数) - 仅在路径名是一个目录时监视它(自Linux 2.6.15起)
-
IN_DONT_FOLLOW (整数) - 如果路径名是一个符号链接,则不解引用它(自Linux 2.6.15起)
-
IN_MASK_ADD (整数) - 如果路径名已经存在,则将事件添加到监视掩码中(而不是替换掩码)。
-
IN_ONESHOT(整数) - 监视路径名的一个事件,然后从监视列表中移除。
-
序号 | 功能与描述 |
---|---|
1 | inotify_add_watch() 函数可以给初始化的inotify实例添加监视。 |
2 | inotify_init() 函数可以初始化一个inotify实例。 |
3 | inotify_queue_len() 函数可以返回大于零的数字,表示有等待处理的事件。 |
4 | inotify_read() 函数可以从inotify实例中读取事件。 |
5 | inotify_rm_watch() 函数可以从inotify实例中移除现有的监视。 |