如何检测某个文件何时被打开?
How to detect when a certain file has been opened?
我正在 Linux 上用 C 编写一个小项目,我 运行 遇到了一个问题。
我必须制作一个模拟 WatchDog 的 activity 的程序。所以我写了几乎所有的代码,但我不知道如何去做最重要的部分。
当我的应用程序在后台 运行 时,它必须检测何时访问某些文件。我已经在一些结构中存储了索引节点、这些文件的路径和名称。那么,有了这些关于文件的信息,我如何检测进程(任何进程,而不是某个进程)何时试图访问其中一个文件?
编辑:实际上,我必须检测以下事件:何时打开文件以及何时有人试图修改文件。就像,如果用户向文件写入内容然后尝试保存更改,我必须允许他或不允许他这样做。
您正在寻找文件系统观察器。为此,您可以使用 Inotify:http://en.m.wikipedia.org/wiki/Inotify
我正在 Linux 上用 C 编写一个小项目,我 运行 遇到了一个问题。 我必须制作一个模拟 WatchDog 的 activity 的程序。所以我写了几乎所有的代码,但我不知道如何去做最重要的部分。 当我的应用程序在后台 运行 时,它必须检测何时访问某些文件。我已经在一些结构中存储了索引节点、这些文件的路径和名称。那么,有了这些关于文件的信息,我如何检测进程(任何进程,而不是某个进程)何时试图访问其中一个文件? 编辑:实际上,我必须检测以下事件:何时打开文件以及何时有人试图修改文件。就像,如果用户向文件写入内容然后尝试保存更改,我必须允许他或不允许他这样做。
您正在寻找文件系统观察器。为此,您可以使用 Inotify:http://en.m.wikipedia.org/wiki/Inotify