如何将inotify集成到您的应用程序 inotify是什么

Inotify 是 Linux 核心子系统之一允许监控程序打开单独的文件描述符 , 并监控一个或多个文件 , 如打开、关闭、移动/重命名、删除、建立或更改特征 。

如何将inotify集成到您的应用程序 inotify是什么

文章插图
Inotify 可以监督文件系统的操作 , 如载入、载入和建立 。Inotify 反应灵敏 , 用法简单 , 比较简单 cron 任务繁忙 , 轮询效率更高 。学习如何将如何将其转移到一起 。inotify 集成到您的应用程序中 , 并找到一组可用于进一步自动化技术治理的命令行工具 。
优势相比被 inotify 替代较老旧 dnotify 模块 , inotify 有许多好处 。在旧模块中 , 程序必须为每个被监控的目录创建 file descriptor , 这种做法很容易使行程拥有 file descriptor 接近系统允许的上限 , 然后形成短板 。dnotify 产生的 file decriptor 还会造成系统资源繁忙 , 使可清除设备难以清除 , 只会增加应用中的困惑 。
因为 dnotify 只能让程序设计师监督目录水平的变化 , 「精细度」也是“dnotify“缺点之一 。因此 , 程序设计师必须投入额外的精力 , 独立编写程序代码 , 以跟踪更小的档案系统 。
inotify 相比之下 , 应用较小 file descriptor , 亦容许 select()与 poll()界面 , 好于 dnotify 使用的通信系统 。这就导致了这种情况 。inotify 与既有以 select()或 poll()为载体函式库(如:Glib )融合更方便 。
inotify 最初的开发者是 John McCutchan、罗伯特·拉姆和 Amy Griffis 。于 Linux 核心 2.6.13 发售时(2005 6月18日) , 正式列入 ,  Linux 核心 。即便如此 , 它仍然可以通过修复程序和修复程序的方式 2.6.12 或者更早期 Linux 核心融合 。
inotify 广泛应用于桌面搜索软件 , 如:Beagle , 对变更的档案进行再次检索 , 无需每隔几分钟就有效地扫描所有档案系统 。与积极轮查档案系统相比 , 通过操作系统积极告知档案变更的形式 Beagle 等待软件甚至可以在档案更改后一秒内升级检索 。
此外 , 许多自动化工作流程 , 如更新目录检查、再加载设置文件、跟踪变更、备份、同步甚至提交 , 都可以从中受益 。
历史简介在 inotify 之前有 dnotify 。遗憾的是 , dnotify 有局限性 , 用户需要更好的产品 。而且和 。dnotify 对比 inotify 优点如下:
Inotify 使用单独的文件描述符 , 使用单独的文件描述符 dnotify 必须为每个监控目录打开一个文件描述符 。当你同时监控多个目录时 , 成本会非常高 , 你也会遇到每个过程文件描述符的限制 。Inotify 所使用的文件描述符可通过系统调用获得 , 且无相关设备或文档 。而采用 dnotify , 文件描述符固定目录 , 防止预留设备卸载 , 是移动媒体的典型问题 。针对 inotify , 卸载的文件系统中的监控文件或目录会产生一件事 , 监控会自动清除 。Inotify 可以监控文档或目录 。Dnotify 只监控目录 , 所以程序猿要保持不变 ,  stat 构造或等效算法设计反映了监控目录中的文档 , 然后将其与当前状态进行比较 , 以掌握当前目录中发生的情况 。如上所述 , inotify 应用文件描述符允许程序猿使用标准 select 或是 poll 函数监控事物 。这允许高效的多路复用 I/O 或者与 Glib 的 mainloop 的集成 。比较之下 , dnotify 应用信号 , 使程序猿感到非常困难或不够顺畅 。在 2.6.25 核心中 inotify 还添加了 Signal-drive I.O 通告作用 。当应用于性能监控、程序调试、自动化等行业时 , inotify 是监管 Linux 文件系统具有强大的高粒度机制 。使用文本中提供的样例代码 , 您可以逐步编写应用程序 , 以实时记录文件系统事件 , 并最大限度地降低特性成本 。
【如何将inotify集成到您的应用程序 inotify是什么】