-
Question sur Eraser
Bonjour,
J'ai récemment regardé le code source de ce logiciel d'effacement sécurisé de données. Et j'ai été assez troublé. Tout d'abord pourquoi n'y a t-il pas de main ?
Un programme n'est-il pas obligé d'avoir une fonction principale ?
Ensuite, je me suis demander comment faire pour écrire directement sur un disque dur ? C'est à dire à un emplacement bien précis ( je n'ai pas une connaissance approfondie de l'adressage de la memoire d'un disque dur mais je crois que cela s'appelle "cluster") ?
Si quelqu'un pourrait bien m'éclairer sur le sujet, j'essaye d'éplucher le code depuis deja un certain temps...:(
-
Un programme écrit en langage C est composé de fonctions et d'appels de ces fonctions. Chaque implémentation doit disposer d'un moyen permettant à l'utilisateur de spécifier laquelle des différentes fonctions qui constituent le programme sera automatiquement appelée au lancement du programme. Dans les applications graphiques Windows par exemple, la fonction qui sera automatiquement appelée au lancement du programme est celle qui s'appelle WinMain. Si on ne cible pas de plateforme particulière, on appelera la fonction principale main. Tout compilateur conforme à la norme en vigueur doit reconnaître cette fonction, main. Cependant, un programme, qui cible alors sûrement une plateforme bien précise, n'est pas obligé de comporter une fonction main (mais il y a toujours une autre fonction équivalente bien sûr, comme la fonction WinMain dans le cas d'une application graphique Windows).
Pour écrire directement sur le dur, en C standard, c'est tout simplement impossible. Avec les APIs de ton système, il y a peut-être un moyen. Sous Windows par exemple, on pourra utiliser CreateFile, WriteFile et co. Lis la doc de ces fonctions.