PHP - Inotify 函数


inotify 扩展可以公开 inotify 函数:inotify_init()inotify_add_watch() 和 inotify_rm_watch()

由于 C 语言 inotify_init() 函数返回文件描述符,PHP 的 inotify_init() 函数返回可用于标准流函数的流资源:stream_select()stream_set_blocking() 和 fclose()inotify_read() 可以替换读取 inotify 事件的 C 方式。

此扩展可能需要 Linux 2.6.13 或更高版本以及最新的 libC。

此扩展没有在 php.ini 定义的配置指令。

此扩展可以定义 inotify_init() 函数返回的流资源。

预定义常量

常量由此扩展在下面定义,并且仅当扩展已编译为 PHP 或在运行时动态加载时可用。

Inotify 常量可以与 inotify_add_watch() 一起使用和/或由 inotify_read() 返回。

常量 描述
IN_ACCESS (integer) 已访问文件(读取) (*)
IN_MODIFY (integer) 文件已修改 (*)
IN_ATTRIB (integer) 元数据已更改(例如权限、mtime 等)(*)
IN_CLOSE_WRITE (integer) 打开用于写入的文件已关闭 (*)
IN_CLOSE_NOWRITE (integer) 未打开写入的文件已关闭 (*)
IN_OPEN (integer)  文件已打开 (*)
IN_MOVED_TO (integer) 文件已移至监视目录 (*)
IN_MOVED_FROM (integer) 文件移出监视目录 (*)
IN_CREATE (integer) 在监视目录 (*) 中创建的文件或目录
IN_DELETE (integer) 在监视目录 (*) 中删除的文件或目录
IN_DELETE_SELF (integer) 已删除监视的文件或目录
IN_MOVE_SELF (integer) 监视文件或目录已移动
IN_CLOSE (integer) 等于 IN_CLOSE_WRITEIN_CLOSE_NOWRITE
IN_MOVE (integer) 等于 IN_MOVED_FROM IN_MOVED_TO
IN_ALL_EVENTS (integer) 上述所有常量的位掩码
IN_UNMOUNT (integer) 已卸载包含监视对象的文件系统
IN_Q_OVERFLOW (integer) 事件队列溢出(此事件的 wd 为 -1)
IN_IGNORED (integer) 监视已删除(由 inotify_rm_watch() 明确删除,或者因为文件已删除或文件系统已卸载
IN_ISDIR (integer) 此事件的主题是一个目录
IN_ONLYDIR (integer) 仅当路径名是目录时才监视路径名(自 Linux 2.6.15 起)
IN_DONT_FOLLOW (integer) 如果路径名是符号链接,则不要取消引用路径名(自 Linux 2.6.15 起)
IN_MASK_ADD (integer) 如果此路径名已存在,则添加事件以监视该路径名的 mask(而不是替换 mask)。
IN_ONESHOT (integer) 监控一个事件的路径名,然后从监视列表中删除。

函数列表

函数 描述
inotify_add_watch() 将监视添加到初始化的 inotify 实例。
inotify_init() 初始化 inotify 实例。
inotify_queue_len() 如果存在待处理事件,则函数可以返回大于零的数字。
inotify_read() 从 inotify 实例读取事件。
inotify_rm_watch() 从 inotify 实例中删除现有监视。