[WinAPI] Datei mehrmals überschreiben

ComFreek

Mod | @comfreek
Moderator
Hallo an alle!

Viele Programme bieten die Möglichkeit Dateien mehrmals zu überschreiben.

Wie kann man das selber in C/C++ programmieren?
Ich denke, dass man dazu die Windows API braucht.

Bei Google habe ich nichts gefunden.


Danke im Voraus!
 
Mit zufälligen Bits, damit man nichts mehr wiederherstellen kann.
Sowas wie bei Datenlösch-Programmen, nur ich wollte es selber machen, wie geht das genau?
 
Da brauchst du noch nicht mal Windows-API für. Das müsste mit den normalen C-Bordmitteln gehen. Datei im Read- und Write-Modus öffnen, Bytes reinschreiben. Filepointer auf Anfang, und wieder Bytes drüber. Das ganze so lange, wie man möchte.

Ich bin mir allerdings nicht ganz sicher, ob das OS in dem Fall nicht die Freiheit hat, das überschriebene File physikalisch woanders abzulegen. Ich meine aber, wenn man nicht über die Originalgrösse drüber rausschreibt, sollte das einwandfrei funktionieren.
 
Könnte es nicht auch sein, dass das OS bei kleineren Dateien cacht?
Das kann tatsächlich zum Problem werden. Nur mit den Dateifunktionen von C lässt sich ein physikalischer Schreibzugriff nicht erzwingen. Man müsste dazu erst den Schreibcache deaktivieren. Ein Paper das dieses und andere mögliche Probleme nennt: http://www.fsl.cs.sunysb.edu/docs/secdel/secdel.html

Im Übrigen sei noch erwähnt, dass i.d.R. einmaliges Überschreiben ausreicht.

Grüße,
Matthias
 
Zuletzt bearbeitet:
Da brauchst du noch nicht mal Windows-API für. Das müsste mit den normalen C-Bordmitteln gehen. Datei im Read- und Write-Modus öffnen, Bytes reinschreiben. Filepointer auf Anfang, und wieder Bytes drüber. Das ganze so lange, wie man möchte.
Hmm, habe ich mir auch schon gedacht, nur habe ich gedacht, dass das irgendwie zu einfach wär :D

Könnte es nicht auch sein, dass das OS bei kleineren Dateien cacht?
Aber nach einem Neustart sind die doch weg, oder?

Ich werde mir mal die Links durchlesen.
 

Neue Beiträge

Zurück