繁体   English   中英

访问文件和打开文件有什么区别

[英]What's the difference between access a file and opening a file

我对此有疑问:¿打开文件和访问文件之间有什么区别?

我正在与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);

通常,打开文件会告诉OS您要使用该文件进行操作。

通常,文件访问是处理文件的方式:只读,只写,读和写。 一些访问权限还包括顺序或随机。

你到底在问什么 如果您询问是否能够访问要写入的文本文件,那么该文本文件存储在哪里? 如果将文本文件存储在只读位置,则写入文本文件将失败。 它可能仍会打开文件并关闭它,但是不会进行写入。 例如,如果您的文本文件位于PC的程序文件中,则您仅对其中存储的项目具有读取权限。 如果要对文件进行读/写访问,请将其存储在C:\\ Users \\ Default \\ AppData中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM