Как читать растущий текстовый файл в C ++?

Я пытаюсь прочитать из файла, который растет (что-то похожее на то, чтоtail -F делает), но должны быть некоторые проблемы с моим кодом:

string   log, logFile("test.log");
size_t   p = 0;

while(true)
{
    ifstream ifs(logFile.c_str());

    ifs.seekg(p);  //*1

    while(ifs.eof() == false)
    {
        getline(ifs, log);

        cout << log << endl;

        p = ifs.tellg();  //*2
    }

    nanosleep(&pause, NULL);
}

Без строк // * 1 и // * 2 файл журнала корректно читается до конца, но при добавлении новых строк ничего не происходит.

С помощью seekg и tellg я пытаюсь сохранить текущую конечную позицию файла, чтобы при повторном открытии я мог пойти туда и прочитать, что было добавлено.

Я хотел бы знать, что не так в моем коде, и если это действительно необходимо, чтобы закрыть и снова открыть тот же файл для этой цели.

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос