Bonjour,
Je dois réaliser un programme qui lit un fichier binaire (qui peut avoir été écrit par nimporte quelle autre machine). Seulement je sais juste que mon fichier contient un int suivie d'un double et ensuite un uint (j'ai simplifié).
Par exemple,
-une machine A peut écrire ce fichier binaire avec un little endian
8 octets pour int, 8 octets pour double et 8 octets pour l'uint
Ca fait que le fichier binaire bin.dat a une taille de 24 octets
-une autre machine B doit lire ce fichier bin.dat or cette machine est en big-endian et code les int sous 4 octets, les doubles sous 8 octets et les uint sous 4 octets. Dans ce cas la la machine B ne lira pas les données correctement.
Donc ma question est comment faire pour que B détecte que A a codé l'int sous 8 octets et comment faire pour sauver cet entier sous 8 octets sous B?
Au niveau de l'endianess je sais qu'il faut se fixé une règle pour dire que le fichier doit être ecrit en BIG endian par exemple et ainsi le lecteur sait qu'il doit inverser les octet si il est en little endian.
Mais mon vri problème est au niveau de la taille des données comment les gérer ?
Merci
Algernon
Partager