Datei entleeren
-
Hallo!
Ich habe eine Datei, die ich während ihrer Benutzung leeren möchte. Das heist, die Datei ist schon geöffnet und ich möchte (ohne sie neu mit O_TRUNC zu öffnen) von ihrem Inhalt befreien.
Bis jetzt habe ich das So probiert:
_lseek(file,0,SEEK_SET); _write(file,"\0",1);
Ich gehe also zum Anfang der Datei und schreibe \0 hinein. Der Hex-Code sagt mir auch, dass da eine 00 am Anfang steht. Trotzdem wird aber der Rest der Datei (also das was ich eigentlich löschen wollte) trotzdem noch mit ausgegeben (z.B. im Editor).
Kann mir jemand erklären, warum das so ist und wie ich mein Vorhaben erfolgreich umsetzen kann?
-
OK, hat sich erledigt;
Mach das ganze zwar nun doch erneut mit _open, aber das ist nicht weiter tragisch
if(file!=0) _close(file); if( (file=_open("c:\\trace.log",_O_WRONLY|_O_CREAT|_O_TRUNC,0750)) ==-1) { perror("open failed on input file"); ret=FALSE; }