PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei löschen mit Systemcalls in C - Programm



skrampe
09-05-2001, 15:48
Hallo,

mein Name ist Sven, ich studiere Informatik (Wirtschaftsinformatik) und habe das Glück mich jetzt mit Linux-Programmierung beschäftigen zu müssen. Ansonsten tummel ich mich mehr in der Ecke Java, Visual Basic usw.

Ich muss ein Program schreiben, dass eine Datei restlos von der Platte löscht. (Also nicht nur den Directory - Eintrag überschreibt)
Leider hab' ich keine Ahnung wie ich das anfangen soll...
Wie erfahre ich wo die Datei auf der Platte liegt, und wie kann ich bestimmen was wo auf die Platte geschrieben wird ?

Ich bin nicht auf der Suche nach einem fertigen C oder C++ - Programm (ablehen würde ich es zwar nicht...;-)

Wer kann mich etwas in die richtige Richtung schubsen ? Eilig ist die ganze Sache natülich auch noch.

Vielen Dank,

Sven

thommy
09-05-2001, 16:03
Beim Löschen einer Datei wird nicht "der Directory-Eintrag" überschrieben, sondern der Inode (der die Datei beschreibt) nebst den Datenblöcken, die die Daten der Datei (komischer Ausdruck ;)) enthalten frei gegeben. Es ist richtig, dass die Datenblöcke in der Voreinstellung nicht überschrieben werden (aber das Auslesen derselben erfordert dann doch einigen Aufwand).

Ich würde das Problem so angehen:

1. die Dateigröße bestimmen (fstat)
2. die Datei zum Schreiben öffnen (fopen)
3. gemäß der Größe Nullen in die Datei schreiben (write)
4. die Datei löschen.

Damit ist die eigentliche Inhalt verloren...

Alles klar?

Thomas

PS: Das mit Basic tut mir wirklich leid ;)

skrampe
10-05-2001, 13:37
Hallöle,

mit dem Tipp hab' ich ein solches Programm geschrieben. Wenn jemand Interesse hat, kann er es per eMail von mir bekommen !

SVEN

flasheye
12-05-2001, 20:14
Hallo Sven,

das würde mich in jedem Falle interessieren. Meine mail adresse ist im Profil. Danke schon mal im Voraus.

DasSein ;)