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);
4

2 に答える 2

1

一般に、ファイルを開くと、そのファイルで操作する必要があることが OS に通知されます。

一般に、ファイル アクセスとは、ファイルの操作方法 (読み取り専用、書き込み専用、読み取りと書き込み) です。一部のアクセス許可には、シーケンシャルまたはランダムも含まれます。

于 2013-11-25T21:49:13.037 に答える
-1

あなたは正確に何を求めていますか?書き込み先のテキスト ファイルにアクセスできるかどうかについてお尋ねの場合、そのテキスト ファイルはどこに保存されていますか? テキスト ファイルを読み取り専用の場所に保存している場合、テキスト ファイルへの書き込みは失敗します。ファイルを開いて閉じることはできますが、書き込みは行われません。たとえば、テキスト ファイルが PC のプログラム ファイルにある場合、そこに保存されているアイテムへの読み取りアクセスしかありません。ファイルへの読み取り/書き込みアクセスが必要な場合は、C:\Users\Default\AppData に保存します。

于 2013-11-25T21:48:07.197 に答える