Grundsätzlich: Du kannst die Laufzeiten des Systems aus dem Eventlog auslesen. Das sollte dir den ganzen Stress sparen und auch eine rückwärtige Betrachtung ermöglichen.
An sonsten hast du kein Echtzeitsystem, somit wird ein uptime=0; while (true) { ++uptime; sleep(1); } keine verlässlichen Zeiten liefern. Einfach weil sleep(1) durchaus länger als genau eine Sekunde warten wird. Die richtige Herangehensweise wäre die Verwendung der Datumsfunktionen, bspw. GetSystemTime.
An sonsten zwingt dich keiner, bei jedem Schreiben wieder anzuhängen. Du kannst doch innerhalb der Datei seeken oder die Datei jeden Schleifendurchlauf überschreiben.
|