Re: Les Endians attaquent

Page principale

Répondre à ce message
Auteur: Edgar Bonet Orozco
Date:  
À: guilde
Anciens-sujets: Les Endians attaquent [etait bash [etait pb video]]
Nouveaux-sujets: Optimisons un poil ! [Was: Re: Les Endians attaquent]
Sujet: Re: Les Endians attaquent
Le jeudi 22 juillet, à 11h47 (+0200), Olivier Delemar a écrit :
> existe-t'il une option de compilation (comme sur DEC) ou une fonction
> spéciale pour lire des fichiers binaires générés par une machine
> x-ENDIAN sur une machine Linux-Intel, qui, comme vous le savez
> certainement, est y-ENDIAN (merci de remplacer les x et y par,
> irrespectivement, LITLE et BIG, car moi, je ne sais plus) ?


Il faudrait que tu expliques en détail ce que tu veux, car là ce n'est
pas clair. J'aurais envie de répondre « ça ne sert à rien ». La preuve :
tu peux parfaitement voir une image GIF (qui est un fichier binaire)
aussi bien sur Linux/Intel (petit boutiste) que sur Linux/Sparc (gros
boutiste).

Il faudrait savoir ce que sont tes fichiers binaires. Tu sais quelle
structure ils ont ? Il y a des entiers codés dedans ? Sur combien de
bits ? Codés en gros-boutiste ou en petit boutiste ? Tout ça doit faire
partie de la spécification du format du fichier.

Pour traduire entre gros boutiste et petit boutiste sur Intel, tu peux
utiliser les fonctions htons() et compagnie (host byte order = petit
boutiste sur Intel, network byte order = gros boutiste). Tu peux aussi
inverser les octets à la main, comme dans
    short inverse_short(short x)
    {
        return x<<8 & 0xff00 | x>>8 & 0xff;
    }
Tu peux aussi faire un inline ou un #define.


-- 
Edgar Bonet Orozco
Lab. Louis Néel -- CNRS              Tel :    +33 476-88-90-89
BP 166                               Fax :    +33 476-88-11-91
38042 Grenoble cedex 9               e-mail : bonet@???