Daten in Dateien löschen bzw. hinzufügen

thekiller

Viceinator
Nabend,

gibt es eine Möglichkeit mit C/C++ bei Dateien bestimmte Bytes löschen kann ohne die komplette Datei neuschreiben zu müssen? Im gegensatz dazu muss es doch auch eine Möglichkeit geben Daten nicht nur am Ende der Datei anzuhängen sondern auch mittendrin.
Fände es nämlich etwas zu umständlich z.b. eine 1GB große datei neuschreiben zu müssen wenn ich nur ein paar Daten daraus löschen möchte.

MfG Manuel
 
Liegt nicht an C++, sondern am Dateisystem und den Funktionen, die das Betriebssystem stellt.
Zumindest bei den mir bekannten gehts nicht.
 
Hm irgendwie muss es ja gehen. Bei VM's wirds ja auch gemacht wie z.B. bei VirtualBox.
Und dass gibts ja bekanntlich auch auf mehreren Betriebssystemen, also auch auf mehreren Dateisystemen.
Ich hatte für ntfs mal die Möglichkeit der ADS(Alternative Datenströme) gefunden. Was ich aber nicht so toll finde, weil dabei die erstellte Datei immer 0 Byte groß angezeigt wird...
 
ADS gibts nur unter NTFS (glaub ich), ist also für verschiedene Betriebssysteme auch nicht so toll.

Und welche VBox-Version hast du denn? Meine kann ihre Festplattendateien nur vergrößern, nicht wieder verkleinern. Habs zumindest noch nie beobachten können, auch wenn ich im virtuellen OS 1GB lösche, wird die Datei nicht kleiner.
 
Ja, Entschuldigung. Ich dachte, thekiller will immer nur eine Art von Zeichen löschen. Bis zu diesem Zeichen könnte man auslesen und den Rest neu schreiben.
 
Hm, kann vielleicht sein, dass ich mich da geirrt habe bei VBox? Hab die aktuellste drauf. Komm leider im Moment nich dazu dass zu testen.
Aber für solche Software wurde dann wahrscheinlich ein eigenes Dateisystem entwickelt nehme ich an? Also für VM's und andere.
Ich habe mittlerweile herausbekommen wie man ab einer bestimmten Stelle in einer Datei schreiben kann...Muss man erstma drauf kommen, dass "a+" (bei fopen()) egal is dass man den Zeiger in der Datei setzt...
r+ is der richtige Modus dafür.
 

Neue Beiträge

Zurück