我想动态读取附加内容的文件。由另一个线程写入的文件。我正在使用 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() 来清除错误条件,该标志也不会重置。这种方法可能存在什么问题?我需要以共享模式打开文件吗?
谢谢。