Das Problem wahrscheinlich zu tun vergessen ist, dass Sie nicht C sagen die Daten auf die Festplatte tatsächlich zu schreiben. Dies geschieht normalerweise automatisch beim Schließen einer Datei und kann automatisch zu anderen Zeiten erfolgen (z. B. wenn interne Puffer voll sind).
Es klingt, als ob Sie nur ein paar Bytes schreiben und dann die Datei überprüfen, um zu sehen, was passiert ist. Wenn dies der Fall ist, hält Ihr Programm diese Bytes möglicherweise in einem internen Puffer, bevor es tatsächlich auf die Festplatte schreibt. Dies dient zur Verbesserung der Leistung im allgemeinen Fall - normalerweise möchten Sie keinen Plattenzugriff für jede einzelne Druckanweisung.
Eine Lösung, wie andere Antworten vorschlagen, besteht darin, fflush aufzurufen. Dies "spült" alle gepufferten Daten auf die Festplatte. Es gibt andere Lösungen, um die Pufferung zu deaktivieren, aber das Aufrufen von fflush ist der beste erste Schritt, da Sie neu in der Programmierung sind.
Für weitere Informationen, hier ist ein Link zu einem wiki book über Datei-I/O mit C. Sie können direkt auf die section on fflush springen, obwohl Sie die einleitenden Abschnitte lesen möchten, um ein wenig mehr Einblick zu gewinnen.
Post einige Code, der das Problem veranschaulicht –