Bonjour,
je cherche à écrire directement à une adresse bien précise dans le disque dur comment pourrais-je m'y prendre sous Windows 7 ?
Bonjour,
je cherche à écrire directement à une adresse bien précise dans le disque dur comment pourrais-je m'y prendre sous Windows 7 ?
A priori, tu ne veux pas le faire.
Du moins, pas à moins d'avoir une très bonne raison de le faire.
Tu peux écrire à un endroit bien spécifique du système de fichier, mais vouloir contourner celui-ci, c'est prendre énormément de risques.
Windows pourrait devenir incapable de lire le fichier qui se trouve être écrit cet endroit là, voire si c'est un dossier, l'intégralité de son contenu.
Pire, parce qu'il n'arriverait pas à lire le dossier, il pourrait cesser de savoir que les fichiers à l'intérieur existent, et écrire par dessus.
Pire encore, si tu écris dans la zone de fonctionnement du système de fichier, le disque dur entier pourrait ne plus être vu comme formatté.
Dans le cas ultimement tragique où tu écrirais dans le secteur racine, ton disque pourrait devenir totalement inutilisable, voire paralyser l'ordinateur complet (si c'est le disque de boot).
D'où ma question:
Pour quel usage aurais-tu besoin d'une telle chose?
Merci pour ta réponse, je dois simuler un programme qui nécessite beaucoup de RAM, n'en ayant pas assez je préfère assigner tout le rôle de RAM à mon disque dur. Le programme en question va massivement aller d'adresse en adresse, je ne peux donc pas écrire dans un fichier car le rechercher d'abord dans la table prendrait énormément de temps en plus de celui d'accès au disque dur.
Bien, c'est beaucoup plus raisonnable. Tu ne veux pas écrire à une adresse arbitraire du disque, mais tu veux juste un "fichier à accès direct"
Regarde du cote de mmap().
C'est la fonction système linux qui permet de faire précisément ce genre de chose.
Pour windows, je te laisse chercher dans la doc système qui va bien (je ne sais où dans la MSDN)
PS: je trouve amusant de te voir, toi spécifiquement, UbuntuHuit, chercher de l'aide pour WindowsSept![]()
l'OS ne te laissera pas faire.Écrire directement dans l'adresse du disque dur sous Windows 7
ça s’appelle la mémoire virtuelle.préfère assigner tout le rôle de RAM à mon disque dur.
https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Pour avoir un accès fichier qui ressemble à un accès mémoire, sous windows, c'est CreateFileMapping + MapViewOfFile. C'est l'équivalent du mmap sous linux.
Et s'il y a des moyens d'avoir un accès bas niveau au disque dur (par exemple pour écrire un défragmenteur de disque), ça ne m'a pas l'air nécessaire du tout ici.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager