c - 使用较旧的 glibc 监视 Linux 中的文件更改

标签 c glibc inotify fstat

我需要使用文件描述符监视常规文件上的事件。我正在使用 CentOS 4.1 和内核版本 2.6.18.128 的计算机。

在意识到使用epoll无法监控常规文件后,我发现可以使用inotify来完成此任务。不过,我在其他地方读到,inotify 所需的库接口(interface)已在 2.4 版本中添加到 glibc,而我的机器安装了 2.3.4 版本。所以我的内核有inotify 支持而不是glibc。不幸的是,我无法将 glibc 更新到较新的版本,因为这会破坏项目的某些其他部分。

所以我的问题是:

  1. 我仍然可以使用 inotify 来监控常规文件吗?我可以获取较新版本的 glibc 并将其放置在本地文件夹(相对于我的代码)中,将路径包含在我的 Makefile 中并使用与 inotify 关联的调用吗?如果是这样,我会遇到什么样的问题?
  2. 另一种方法是使用 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/

相关文章:

c - 将 cvRect 作为图像输出

c - Windows 8.1 : only works if dummy printf is called 上的 WndProc 异常行为

c - 如何在c中多次出现 '/'时使用strchr获取子字符串并将其存储在变量中

c++ inotify - 观看多个目录/子目录

build - 有没有基于类似inotify机制的构建工具

SQLite 数据库在读取时写入

c - 静态变量和本地

c - __insn_seqb() 和 __insn_ctz 是什么意思?

c - 无需轮询的 Linux 同步

ubuntu - 将 libc 升级到 2.9 版