Salut les C,
j'ai coder un programme d'effacement de fichier que je ne vais pas exhiber ici comme la dernière fois avec la réplique de la commande ls -l (j'ai suivis vos conseils d'amélioration et ajouter des trucs sympa...)
Mais la question est purement théorique:
Mon programme comprend 2 étapes et est basé sur les fonctions:
-open(), read(), write(), et (f)truncate pour le changement du contenus du fichier.
-utime() et rename() pour la modification des métadonnées.
-remove() pour l'effacement du fichier.
-> Etape 1)
-) Calcul de la taille du fichier avec read().
-) Remplacement du contenus du fichier par des caractères '\0'.
-) Ajout de caractères '\0' pour que la taille soit: ( (taille % 512) == 0 )
-) avec ftruncate().
-) Changement de l'horodatage pseudo aléatoire avec utime().
-> Etape 2) dans une boucle:
-) Appel a truncate() en divisant la taille du fichier par 2 a chaque fois.
-) Changement de l'horodatage pseudo aléatoire avec utime().
-) Renommage avec rename().
-) Jusqu'a arriver a une taille de zéro.
-) Effacement du fichier avec remove().
J'en arrive a ma question le fichier effacer comme décrit est-il retrouvable ?
Je pose cette question car je ne prétend pas savoir comment fonctionne un ordinateur nie la réponse a ma question.
Ma technique d'effacement du fichiers est-elle pertinente ?
A vous de jouer.
PS: le programme permet d'effacer des fichiers textes de plus de 1 Gio de taille.
Et si vous voulez vraiment le voir il va falloir que je le commente avant de le poster.
Merci pour vos réponses (techniques) (théoriques ?).
Partager