IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

r/w sur l'image d'une partition ext2/ext3


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut r/w sur l'image d'une partition ext2/ext3
    Bonjour,

    Comment accéder facilement à l'image d'une partiton EXT2 ? (ou EXT3 et éventuellement EXT4)

    J'ai des prgs qui manipulent des fichiers via les iostream sur les partitions du "système d'exploitation courant" (et donc géré par le système lui-même, Windows pour ne pas le citer), mais j'aimerais que ces prgs puissent accéder à ces fichiers dans des partitions "étrangères".
    En bref, je cherche une sorte de filtre sur les std::iostream sans modifier la logique ni le code des prgs existants pour lire/écrire dans des partitions EXT2/3.

    Merci.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par camboui Voir le message
    En bref, je cherche une sorte de filtre sur les std::iostream sans modifier la logique ni le code des prgs existants pour lire/écrire dans des partitions EXT2/3.
    Tu ne trouveras pas ça et c'est normal, la STL n'a pas vocation à implémenter la manipulation de systèmes de fichiers, et ne le fait de toute façon pas, ni en FAT ni en NTFS ni aucun autre. L'OS présente à ton programme C++ des appels systèmes qui permettent de manipuler les fichiers, mais c'est le noyau qui exécute ce code, et pas du code binaire embarqué dans ton exécutable.

    Si tu veux écrire dans des partitions ext depuis Windows, il te faut un moyen de les exposer dans windows comme des volumes montés. Il existe un driver mais il n'a pas l'air trop maintenu. Il y a peut être d'autres outils.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Je me doute bien que la STL ne fait pas ça. Je pensais plus à une bibliothèque externe proposant des classes dérivées des iostream de base.
    Avec toutes leurs fonctions virtuelles, ce serait bien dommage que jamais personne ait songé à dériver les std::iostream.

    En marge des iostream, il me semble que boost::device propose des éléments de base pour faire des accès externalisés tout en conservant une logique commune (open, close, read, write, seek, etc). Par exemple, outre des partitions étrangères, accéder à des fichiers compréssés, cryptés, etc.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par camboui Voir le message
    Je me doute bien que la STL ne fait pas ça. Je pensais plus à une bibliothèque externe proposant des classes dérivées des iostream de base.
    Avec toutes leurs fonctions virtuelles, ce serait bien dommage que jamais personne ait songé à dériver les std::iostream.
    Mais ça n'a rien à faire dans les streams ! Un système de fichier n'est pas un format d'encodage... ça n'a rien à voir.

    Avec une bibliothèque adaptée, tu pourrais obtenir un file descriptor sur un fichier qui est sur une partition ext, et ensuite tu peux streamer dedans tout ce que tu veux. Le fait que ce soit stocké sur du ext ou n'importe quoi d'autre n'a aucun impact sur le contenu du fichier, et par conséquent, les streams font des opérations qui sont complètement orthogonales au choix du système de fichier.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Je crois qu'on est bien d'accord. J'ai dû mal m'exprimer donc, et mal comprendre les limites/usages des iostream. "Techniquement", je pensais naïvement qu'il était possible d'intégrer ce que je cherche à "l'intérieur" des iostream.

    Mais c'est bien ça, je cherche des "bibliothèques adaptées" permettant d'accéder à de sombres partitions en amont tout en n'ayant qu'à faire ce qu'on fait habituellement en aval avec les iostream.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Malheureusement, ça ne se fait pas trop... il est beaucoup plus facile d'écrire dans FAT ou NTFS depuis Linux que d'écrire sur ext depuis windows. Et comme ce n'est pas un besoin très important, peu de devs s'y intéressent.

    A mon avis il faut soit revoir ta stratégie soit te contenter de Ext2FSD.

Discussions similaires

  1. Récupérer une partition Ext2
    Par Spirale21 dans le forum VirtualBox
    Réponses: 1
    Dernier message: 11/05/2014, 10h51
  2. Boot sur un disque ou une partition
    Par Drone dans le forum Windows
    Réponses: 1
    Dernier message: 22/10/2009, 20h08
  3. Réponses: 4
    Dernier message: 18/09/2008, 14h28
  4. Méta-données attachées aux fichiers sur une partition ext2 ?
    Par Hibou57 dans le forum Administration système
    Réponses: 2
    Dernier message: 21/11/2007, 14h53
  5. [CF 2.0 c# VS2005]NotSupportedException sur l'image d'une PC
    Par pdesoil dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 03/04/2007, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo