我有这样的疑问:¿它们之间的区别是:打开文件并访问文件?
我正在使用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);
答案 0 :(得分:1)
通常,打开文件会告诉您要使用该文件操作的操作系统。
通常,文件访问是您使用文件的方式:只读,只写,读取和读取。写。某些访问权限还包括顺序或随机。
答案 1 :(得分:-1)
你到底在问什么?如果您询问是否能够访问要写入的文本文件,那么您在哪里存储文本文件?如果要将文本文件存储在只读位置,则写入文本文件将失败。它仍然可以打开文件并将其关闭,但不会进行任何书写。例如,如果您的文本文件位于PC的程序文件中,则只能对存储在其中的项目进行“读取访问”。如果要对文件进行读/写访问,请将其存储在C:\ Users \ Default \ AppData
中