c - 如何检测某个文件何时被打开?

标签 c linux file

我正在 Linux 上用 C 编写一个小项目,但遇到了一个问题。 我必须制作一个模拟 WatchDog 事件的程序。所以我写了几乎所有的代码,但我不知道如何去做最重要的部分。 当我的应用程序在后台运行时,它必须检测何时访问某些文件。我已经在一些结构中存储了 inode 、这些文件的路径和名称。那么,有了这些关于文件的信息,我如何检测进程(任何进程,而不是某个进程)何时试图访问其中一个文件? 编辑:实际上,我必须检测以下事件:何时打开文件以及何时有人试图修改文件。例如,如果用户向文件写入内容然后尝试保存更改,我必须允许他或不允许他这样做。

最佳答案

您正在寻找文件系统观察器。为此,您可以使用 Inotify:http://en.m.wikipedia.org/wiki/Inotify

关于c - 如何检测某个文件何时被打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483191/

相关文章:

c - 稍微复杂的线程同步

c - 如何提供一致的接口(interface): Deep-Copy OpenSSL structs or Document Distinct Cases?

c++ - Boost 的 managed_shared_memory 在两个进程(C 和 C++)之间的使用

c - 获取C双向链表中的最后一个元素错误

linux - SystemOut.log 文件字符串搜索、计数并在计数达到 10 时通过电子邮件发出警报

delphi - 音频文件标记(读/写)库?

php - 如何在 Laravel 迁移中使用自定义文件名?

c - 请推荐一个好的D-Bus教程(Linux C GTK+)

linux - 如何调用写入 proc 文件的内核模块?

python - 将(大量)零写入二进制文件