我需要使用文件描述符监视常规文件上的事件。我正在使用 CentOS 4.1 和内核版本 2.6.18.128 的计算机。
在意识到使用epoll
无法监控常规文件后,我发现可以使用inotify
来完成此任务。不过,我在其他地方读到,inotify
所需的库接口(interface)已在 2.4 版本中添加到 glibc,而我的机器安装了 2.3.4 版本。所以我的内核有inotify 支持而不是glibc。不幸的是,我无法将 glibc 更新到较新的版本,因为这会破坏项目的某些其他部分。
所以我的问题是:
- 我仍然可以使用
inotify
来监控常规文件吗?我可以获取较新版本的 glibc 并将其放置在本地文件夹(相对于我的代码)中,将路径包含在我的 Makefile 中并使用与inotify
关联的调用吗?如果是这样,我会遇到什么样的问题? - 另一种方法是使用
fstat
,通过跟踪struct stat
结构的st_mtime
成员。走这条路有什么注意事项吗?
如果我的问题表明您对这些概念缺乏理解,请耐心等待,因为我刚刚开始使用它们。
最佳答案
对于 2 glibc,请参阅以下帖子: Multiple glibc libraries on a single host
否则 inotify 似乎是直接的解决方案。
关于c - 使用较旧的 glibc 监视 Linux 中的文件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195918/