0

追加されたコンテンツのファイルを動的に読み取りたい。ファイルは別のスレッドによって書き込まれます。私はubuntuを使用していて、inotifyを見ましたが、追加されたコンテンツを読むだけでよいので、簡単な方法を試して実装したかったのです。私が試したことは次のとおりです。

ifstream logFile("path_to_file", ifstream::in);
if(logFile.fail()) {
    cout << "file not found" << endl;
    exit(0);
}

while (true) {
    string line;
    getline(logFile, line);
    if( logFile.eof() ) {
        //wait for 2 seconds
        logFile.clear();
    }
    if(!line.empty())
        cout << line << endl;

ただし、EOF が発生した場合、最後にさらにコンテンツが追加されている場合や、エラー状態をクリアするために clear() を呼び出した場合でも、フラグはリセットされません。このアプローチで何が問題になる可能性がありますか? ファイルを共有モードで開く必要がありますか?

ありがとう。

4

0 に答える 0