我有这个疑问:¿之间的区别是:打开文件和访问文件?
我正在使用 fanotify,我只对 FAN_ACCESS 事件感兴趣。我启动我的程序,当我尝试编辑某个文件时,程序会执行它必须做的事情。
说,我写了一些测试,一些测试用例使用这样的代码:
filesystem::ofstream acces_to_file;
acces_to_file.open('/tmp/test_file.txt');
acces_to_file << "Some text" << endl;
acces_to_file.close();
但令人惊讶的是,我的程序没有检测到这种访问。我从 nano 访问相同的文件(即使没有重新启动上述程序)并且一切都可以再次工作。
这就是为什么我认为访问和打开文件之间必须有一些区别。
该程序始终由 root 用户执行。
我将标志设置如下:
fanotify_mark(fd, FAN_MARK_ADD, FAN_ACCESS | FAN_EVENT_ON_CHILD, AT_FDCWD, MONITOR_ROOT_PATH);