Je débute en programmation C (sous windows avec VS2010 - je ne connais encore rien : donc cela pourra expliquer la naïveté ou le manque de sens de certaines questions/remarques). Je suis en train de tester l'écriture et la lecture de fichiers binaires
et la lecture d'un tutoriel sur le sujet me fait me poser quelques questions :
Si dans mon format je connais exactement la longueur des champs pour les différents types utilisés, cette question ne se pose pas non ?En programmant en langage C par exemple, il est possible de produite un fichier binaire d’une remarquable concision et efficacité.
Mais si vous voulez le rendre portable sur différents systèmes, il sera difficile d’éviter la nécessité de gérer plusieurs versions.
Ne serait-ce que parce que la longueur d’une instruction ou mot-machine peut varier.
(A moins que cette remarque ne fasse aux systèmes 16 bits/32 bits/64 bits auquels je ne comprend pour ainsi dire rien faute d'avoir pu trouver une source fiable et limpide sur le sujet)...
Dans le reste du tutoriel :
Encore une fois, j'imagine que ces différences divent venir des types de plateformes utilisées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Ou pour des questions aussi croustillantes que « lindianité » ou endianess (dans le cas du « little endian », loctet le moins significatif dune donnée de plusieurs bytes est logée à ladresse mémoire la plus basse. Si on est en « big endian », cest le contraire).
Mais alors, si mon programme doit lire un fichier produit sur une plateforme en (ou utilisant?) littlle endian comment faire pour le lire
avec le même programme sur une plateforme gérant le big endian?
Merci à ceux, pour qui le sujet apparaît moins obscur d'éclairer ma lanterne.
Partager