Comment lisez-vous les secteurs du disque dur en C ++ avec GCC / Linux? Y a-t-il une bibliothèque standard que je peux utiliser ou quelque chose doit être téléchargé? Sous Windows, je peux utiliser Createefile (...) pour accéder aux secteurs des disques bruts, mais je ne sais pas comment faire à Linux. p>
J'utilise GCC sur Ubuntu LTS 10.4. Merci pour votre aide. P>
3 Réponses :
Le disque dur n'est qu'un autre fichier (pas un "fichier régulier" mais un "fichier de périphérique", mais toujours un fichier). Ouvrez la voie normale ...
int fdes = open("/dev/sda1", O_RDONLY);
if (fdes < 0)
err(1, "/dev/sda1");
... do more ...
/ dev / sda1 code> serait une partition ... Pour l'accès à la section RAW, vous voudrez probablement utiliser / dev / sda code>
+1 pour "juste un autre fichier" et ne pas jouer avec dd code>. Méfiez-vous des autorisations, vous devrez probablement être membre du groupe de disque ou de la racine (pas une bonne idée) de le faire.
Que cela sera très utile.
Vous pouvez jeter des secteurs de disque vers un fichier avec la commande DD et lire le fichier généré p>
Comme d'autres personnes ont signalé correctement, l'accès au disque sur Linux (et d'autres systèmes d'exploitation de type UNIX) via un fichier spécial de périphérique. Sur mon ordinateur portable Ubuntu, mon disque dur est nommé "/Dev/sda"..p>Sant que vous demandez spécifiquement comment le faire en C ++ (pas simplement comment le faire sous Linux), voici comment lire un secteur en utilisant < Code> std :: ifstream code>. p>
Savez-vous comment acquérir la taille du secteur d'un disque?
@Patriknusszer - Peut-être que ceci: Stackoverflow .Com / Questions / 8416241 / ...