Forum: Compiler & IDEs Datei lesen und den Inhalt dann löschen, aber wie ?


von macke_a (Gast)


Lesenswert?

Hallo !
Ich möchte gerne die Datei mittels

datei = fopen ("test.txt","rb");

lesen und anschließend den Inhalt der test.txt Datei löschen.

Aber wie bekomme ich den Inhalt der Datei gelöscht ??

Mfg macke_a

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

datei = fopen("test.txt", "w");

und dann mit write() was anderes 'reinschreiben.

Oder was stellst Du Dir unter "inhalt löschen" vor?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Aber wie bekomme ich den Inhalt der Datei gelöscht?

Der C-Standard hat dafür die Funktion remove() genormt.

Die APIs der einzelnen Betriebssyteme kennen u. U. dafür noch
low-level-Primitiven, bei Posix (Unix-API) z. B. unlink().

von macke_a (Gast)


Lesenswert?

Also Danke für Eure Beiträge erst mal!

@Rufus t. Firefly
Der Inhalt der Text Datei soll leer sein, dass meine ich mit "Inhalt" 
löschen. Vielleicht besteht die Möglichkeit mit einem anderen 
Öffnungsmodus, wie r,w,a,r+,b etc. den Inhalt der Text Datei zu löschen.
Natürlich kann ich auch die Datei auch neu beschreiben, aber das will 
ich halt nicht.

Andersrum geht natürlich auch, dass ich die Datei komplett entferne!

remove("test.txt")


Wäre dies richtig ?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

versuch mal genau 0 Byte mit fwrite/fprintf/fputs in die mit "wb" 
geöffnete Datei zu schreiben. Das sollte eigentlich funktionieren.

Matthias

von Εrnst B. (ernst)


Lesenswert?

Zum "Datei ab byte x abschneiden" (auch für x==0) gibts die fkt. 
truncate und ftruncate (unistd.h)

/Ernst

von macke_a (Gast)


Lesenswert?

Hallo !
Ich lösche die Datei jetzt mit
unlink(test.txt);

Freundliche Grüsse
macke_a

Danke für Eure Beiträge!!

von macke_a (Gast)


Lesenswert?

Sorry, so ist es richtig!

unlink("test.txt");

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.