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