Jak czytać rosnący plik tekstowy w C ++?

Próbuję odczytać z rosnącego pliku (coś podobnego do tego, cotail -F robi), ale z moim kodem muszą być pewne problemy:

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);
}

Bez linii // * 1 i // * 2 plik dziennika jest poprawnie odczytywany aż do końca, ale jeśli dodawane są nowe wiersze, nic się nie dzieje.

Przy pomocy seekg i tellg próbuję przechowywać bieżącą pozycję końcową pliku, więc gdy go ponownie otworzę, mogę przejść tam i zobaczyć, co zostało dodane.

Chciałbym wiedzieć, co jest nie tak w moim kodzie i czy naprawdę konieczne jest zamknięcie i ponowne otwarcie tego samego pliku w tym celu.

Dziękuję Ci.

questionAnswers(3)

yourAnswerToTheQuestion