2013-11-25 43 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

真的嗎?你爲什麼把負面分數放到我的帖子上?我試圖幫助。 –

相關問題