我有这样的疑问:“打开文件和访问文件之间有什么区别?”
我正在使用 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);
最佳答案
一般来说,打开一个文件会告诉操作系统你想操作这个文件。
一般来说,文件访问就是您对文件的操作方式:只读、只写、读写。一些访问权限还包括顺序或随机。
关于c++ - 访问文件和打开文件有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20203712/