当前位置:嗨网首页>书籍在线阅读

01-监控文件事件

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第19章 监控文件事件

某些应用程序需要对文件或目录进行监控,已侦测其是否发生了特定事件。例如,当把文件加入或移出一目录时,图形化文件管理器应能判定此目录是否在其当前显示之列,而守护进程可能也想要监控自己的配置文件,以了解其是否被修改。

自内核2.6.13起,Linux开始提供inotify机制,以允许应用程序监控文件事件。本章将介绍inotify的用法。

inotify机制所取代的是dnotify,后者一来较为陈旧,二来仅具备前者的部分功能。本章会在结尾处对dnotify做简要介绍,着重突出inotify的优势所在。

inotify和dnotify都是Linux专有机制。(仅有少数其他系统提供类似机制。比如,BSD所提供的kqueue API。)

有几个函数库提供的(类似)API,比之inotify和dnotify,既更为抽象,在可移植性方面也略胜一筹。某些应用可能更倾向于采用这样的函数库。而这其中的一些库也会调用inotify和dnotify,前提是要获得操作系统的支持。FAM(文件变更监控http://oss.sgi.com/projects/fam/)和Gamin (http://www.gnome.org/~veillard/gamin/)便是此类库的两个例子