title: How to read a growing text file in C++?
body: <p>I am trying to read from a file which is growing (something similar to what <code>tail -F</code> does), but there must be some problems with my code:</p>
  
  <pre><code>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 &lt;&lt; log &lt;&lt; endl;
  
          p = ifs.tellg();  //*2
      }
  
      nanosleep(&amp;pause, NULL);
  }
  </code></pre>
  
  <p>Without the lines //*1 and //*2, the log file is correctly read up to its end, but if new lines are added nothing happens.</p>
  
  <p>With seekg and tellg I am trying to store the current end position of the file, so that when I reopen it I can go strait there and read what has been added.</p>
  
  <p>I would like to know what is wrong in my code, and if it is really necessary to close and reopen the same file for this purpose.</p>
  
  <p>Thank you.</p>