В Qt есть класс QFileSystemWatcher
Так, ок. Допустим мы, используем этот, класс. Нам нужно оперативно считывать файл логa apache (например).
1. Открываем файл -> считываем до конца. Закрываем? Или можно держать открытым?
2. Добавляем файл под наблюдение: void QFileSystemWatcher::addPath ( const QString & path ).
3. Ловим сигнал void QFileSystemWatcher::fileChanged ( const QString & path ) [signal] и отправляем его в слот считывания очередной порции данных.
Это нормальная схема?
Подразумевается что файл обновляется сколь угодно часто, например десятки раз в секунду. Таким образом мне видится следующая проблема:
1. В Файле N строк, которые считываются на первой итерации.
2. В файл добавляется X строк, ватчер испускает сигнал, идем в слот - читаем файл ДО КОНЦА. При этом пока мы читаем, ватчер может испустить еще сколь угодно много сигналов обновления файла и они встанут в очередь выполнения, но мы то уже прочитали файл до конца.