2013-11-25 46 views
1

我有这样的疑问:¿有什么区别:打开文件和访问文件?访问文件和打开文件有什么区别

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

回答

1

通常,打开文件会告诉操作系统您想使用该文件进行操作。

一般来说,文件访问是如何操作文件的:只读,只写,读&写。某些访问权限还包括顺序或随机。

+0

因此,当我写入文件时,我正在访问已打开的文件?这就是你的意思?当然,这就是你的意思,我在想什么? ; p –

+0

而[this](http://www.xypron.de/projects/fanotify-manpages/man2/fanotify_mark.2.html)表示'FAN_ACCESS'表示文件已被读取(你的例子中没有做) – nos

-1

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

+0

真的吗?你为什么把负面分数放到我的帖子上?我试图帮助。 –

相关问题