ftruncate auf die Datei mit fopen geöffnet

Plattform ist Ubuntu Linux auf ARM.
Ich will schreiben, die einen string in eine Datei, aber ich möchte jedes mal zum abschneiden der Datei und schreiben Sie dann die Zeichenfolge, d.h. keine Anhängen.

Habe ich diesen code:

f=fopen("/home/user1/refresh.txt","w");
fputs( "{"some string",f);
fflush(f);
ftruncate(fileno(f),(off_t)0);
flcose(f);

Wenn ich starten Sie es und überprüfen Sie dann die Datei, wird es mit einer Länge von null und, wenn Sie geöffnet wird, gibt es nichts in ihm.
Wenn ich entfernen Sie die fflush rufen, es wird NICHT 0 sein (11), und wenn ich es öffne wird es "some string" drin.
Ist das das normale Verhalten?
Ich habe kein problem beim Aufruf fflush, aber ich möchte das in einer Schleife und Aufruf fflush erhöhen kann die Ausführungszeit erheblich.

  • Wenn Sie nicht der Puffer geleert ist, kann es passieren, dass es nur geleert auf fclose, nach dem abschneiden.
InformationsquelleAutor user1523271 | 2012-11-21
Schreibe einen Kommentar