Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

convertion BIG-ENDIAN en LITTLE ENDIAN

26 réponses
Avatar
hicham
bonjour a tous,

je suis a la recherche d'aide sur l'utilisation de endian.h avec config.h
dans le but de convertir des fichier compilés sous unix solaris en
BIG-ENDIAN en fichier LITTLE-ENDIAN.

je travail actuellement sur linux debian 3.0 woody

et en même temps sur solaris 8.0


merci pour votre aide.

10 réponses

1 2 3
Avatar
kanze
"hicham" wrote in message
news:<bdp1um$92s$...

je suis a la recherche d'aide sur l'utilisation de endian.h avec
config.h dans le but de convertir des fichier compilés sous unix
solaris en BIG-ENDIAN en fichier LITTLE-ENDIAN.


Quel est le contenu du fichier ? C'est plutôt rare qu'une conversion (de
quoi : des int ? des shorts ? des doubles ?) simple fait l'affaire. Ce
qu'il faut, c'est définir complétement le format du fichier (comment
reconnaître si les octets qui suivent sont un entier binaire à quatre
octet ou une chaîne de caractères, par exemple), et puis écire du code
pour le lire et l'écrire de façon portable -- et on n'a pas besoin de
connaître l'architecture du hardware pour faire ça.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16

Avatar
Christophe de Vienne
wrote:

"hicham" wrote in message
news:<bdp1um$92s$...

je suis a la recherche d'aide sur l'utilisation de endian.h avec
config.h dans le but de convertir des fichier compilés sous unix
solaris en BIG-ENDIAN en fichier LITTLE-ENDIAN.


Ce
qu'il faut, c'est définir complétement le format du fichier (comment
reconnaître si les octets qui suivent sont un entier binaire à quatre
octet ou une chaîne de caractères, par exemple), et puis écire du code
pour le lire et l'écrire de façon portable -- et on n'a pas besoin de
connaître l'architecture du hardware pour faire ça.


On peut aussi utiliser un format existant et déjà portable (je pense à XML).

--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.


Avatar
kanze
Christophe de Vienne wrote in message
news:<newscache$5s5chh$b0g$...
wrote:

"hicham" wrote in message
news:<bdp1um$92s$...

je suis a la recherche d'aide sur l'utilisation de endian.h avec
config.h dans le but de convertir des fichier compilés sous unix
solaris en BIG-ENDIAN en fichier LITTLE-ENDIAN.


Ce qu'il faut, c'est définir complétement le format du fichier
(comment reconnaître si les octets qui suivent sont un entier
binaire à quatre octet ou une chaîne de caractères, par exemple), et
puis écire du code pour le lire et l'écrire de façon portable -- et
on n'a pas besoin de connaître l'architecture du hardware pour faire
ça.


On peut aussi utiliser un format existant et déjà portable (je pense à
XML).


Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation de ce
qu'on a écrit n'est pas très rapide, et SI on accepte que les fichiers
auront une taille deux fois plus grande que nécessaire.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16



Avatar
Jean-Marc Bourguet
writes:

On peut aussi utiliser un format existant et déjà portable (je pense à
XML).


Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation de ce
qu'on a écrit n'est pas très rapide, et SI on accepte que les fichiers
auront une taille deux fois plus grande que nécessaire.
^^^^

Tu es optimiste ou bien tu consideres qu'on utilise la zlib d'office
quand on ecrit du XML?

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


Avatar
Erwann ABALEA
On 1 Jul 2003 wrote:

[...]
On peut aussi utiliser un format existant et déjà portable (je pense à
XML).


Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation de ce
qu'on a écrit n'est pas très rapide, et SI on accepte que les fichiers
auront une taille deux fois plus grande que nécessaire.


Comme disent les djeunz, ASN.1 rulez! (ah non, ils ne connaissent pas
l'ASN.1) ;)

Je me souviens avoir lu dans Linux Journal une description de ce qui
allait devenir Jabber... L'auteur de l'article était tout content à l'idée
des potentialités du machin, de la facilité d'échanger du XML, etc. Son
exemple qu'il trouvait génial, c'était qu'on pourrait dans un futur pas
trop lointain envoyer un message à une ampoule pour qu'elle s'allume. Et
pour ça, il fallait plusieurs dizaines d'octets de message, ce qu'on
aurait pu faire en ASN.1 codé DER (ou autre) en quelques octets seulement.
Un exemple aussi minable et un tel gaspillage de ressources, ça m'a
dégouté du machin en question.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Le neuneu est un con qui débute. C'est une espèce rare mais qui fait
beaucoup de bruit.
-+- JCD in : Guide du Neuneu d'Usenet -- Bien configurer son neuneu.-+-


Avatar
kanze
Jean-Marc Bourguet wrote in message news:...
writes:

On peut aussi utiliser un format existant et déjà portable (je pense à
XML).


Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation de ce
qu'on a écrit n'est pas très rapide, et SI on accepte que les fichiers
auront une taille deux fois plus grande que nécessaire.
^^^^

Tu es optimiste ou bien tu consideres qu'on utilise la zlib d'office
quand on ecrit du XML?


Optimiste. J'ai voulu dire « au moins deux fois plus grande ». (Encore
qu'il y a des cas extrème -- si les éléments comportent des PCDATA d'une
taille importante, par exemple.)

En revanche, avec un coup de compression, c'est même possible que le
résultat soit plus petit qu'un fichier binaire. Il y a énormement de
rédondance dans le XML, et c'est une rédondance d'une forme que LZW
trouve facilement.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16



Avatar
Martinez Jerome
Erwann ABALEA wrote:

Et
pour ça, il fallait plusieurs dizaines d'octets de message, ce qu'on
aurait pu faire en ASN.1 codé DER (ou autre) en quelques octets seulement.
Un exemple aussi minable et un tel gaspillage de ressources, ça m'a
dégouté du machin en question.


La problematique de ton temps (oups, desolé) et celle d'aujourd'hui
n'est plus la meme : avant il fallait caser un maximum d'info dans très
peu de place, aujourd'hui le but est de se faire comprendre par
n'importe quel equipement sans trop programmer.
D'ou la percée d'HTML, XML... et meme des fichiers de configuration de
linux (tout en texte, c'est du rendement? non mais c'est debugable
facilement) qui sont de loin tres fort pour generer des gros fichiers
pour peu d'info :)

Avatar
kanze
Christophe de Vienne wrote in message
news:<newscache$i3rchh$u7i$...
wrote:

Christophe de Vienne wrote in message
news:<newscache$5s5chh$b0g$...
wrote:

On peut aussi utiliser un format existant et déjà portable (je
pense à XML).



Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?


Mais XML _est_ simple...


On voit que tu ne l'as jamais vraiment utilisé:-).

L'avantage du XML, évidemment, c'est que tu peux te télécharger un
parseur qui a des chances de marcher. Si la structure des données est
complexe et variable, et que tu peux te permettre l'expansion de taille,
c'est à considérer pour cette raison. Si la structure n'est pas complex,
il est souvent plus simple d'écrire un parseur de rien que d'écrire des
spécifications XML (le schéma ou le DTD). Et si la structure est figée,
tu n'as pas besoin vraiment d'un parseur, ni de toutes les informations
supplémentaire dans le fichier XML.

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation
de ce qu'on a écrit n'est pas très rapide, et SI on accepte que les
fichiers auront une taille deux fois plus grande que nécessaire.


Egalement SI on veut que le format soit très facilement lisible par un
programme quelconque don't l'auteur n'aurait pas accès à notre
bibliothèque si portable qu'on a conçu pour ça (voir même sans
documentation),


SI ton application peut utiliser un schéma pré-existant, c'est vrai.
Sinon, ce n'est pas l'utilisation du XML qui va changer quelque chose.
Du XML avec un schéma sur mésure, c'est comme n'importe quel autre
format que tu inventes toi-même.

SI on veut pouvoir lire le fichier en question avec un simple éditeur
de texte,


Un fichier texte est préférable. Toujours, quand on peut. Là, je suis
d'accord. Mais le XML n'est pas le seul format texte possible.

SI on veut pouvoir valider le format du fichier facilement (et éviter
pas mal de debugging),


Si on veut pouvoir valider le format facilement, on utilise un format
simple, qui n'a pas besoin de validation.

Et les possibilités de validation du XML sont bien limitées. Pour ne pas
dire quasi inexistant pour tout sauf la structure du fichier.

SI on veut utiliser des encodages ésotériques...


Et pourquoi est-ce qu'on voudrait faire une chose comme ça ? Si mon
programme ne sait pas écrire un encodage, quel est l'intérêt de
l'utiliser.

Donc, à moins que la vitesse de lecture et la taille du fichier ne
soit un réel problème, mon choix est en général vite fait.

Par ailleurs passer tout en format texte est-il si couteux ?


Passer tout en format texte, pas forcement -- nous utilisons des champs
de 11 caractères pour les entiers chez nous, à la place des 4 octets
qu'il faudrait en format binaire, mais nous utilisons toujours
exactement 11 parce que ça couvre tous les besoins, et nous avons besoin
des longueurs d'enrégistrement fixes. Typiquement, j'imagine qu'il y
aurais beaucoup d'entiers qu'on pourrait écrire avec un ou deux octets
sinon.

Je suis tout à fait pour un format texte. Ne serait-ce que pour le
déboguage. Je suis aussi tout à fait pour un format documenté --
figure-toi que j'en ai vu souvent le cas où personne ne savait le format
exact sur disque. Mais on peut faire du texte plus simplement que du
XML, et les besoins de documentation sont pareil dans les deux cas.

De toute façon, sans savoir ce qu'il veut faire avec ses données, on ne
peut pas dire quel serait le meilleur format. (Quelqu'un d'autre a
supposé qu'il veut les exécuter -- qu'il voulait un programme qui
convertirait un a.out Solaris (Sparc ?) en un a.out Linux (Intel ?). Ça
doit être possible, mais ce en serait pas un programme trivial.)

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16




Avatar
kanze
Erwann ABALEA wrote in message
news:...
On 1 Jul 2003 wrote:

[...]
On peut aussi utiliser un format existant et déjà portable (je
pense à XML).


Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?

Sérieusement, ça peut être une bonne idée, SI on accepte le prix de
passer tout en format texte, et SI on accepte que l'interprétation
de ce qu'on a écrit n'est pas très rapide, et SI on accepte que les
fichiers auront une taille deux fois plus grande que nécessaire.


Comme disent les djeunz, ASN.1 rulez! (ah non, ils ne connaissent pas
l'ASN.1) ;)


ASN.1 est un langage de description des données, non un encodage. Chaque
fois que je l'ai vu, l'encodage était BER. C-à-d à peu près l'équivalent
de XML, mais en binaire.

Je me souviens avoir lu dans Linux Journal une description de ce qui
allait devenir Jabber... L'auteur de l'article était tout content à
l'idée des potentialités du machin, de la facilité d'échanger du XML,
etc. Son exemple qu'il trouvait génial, c'était qu'on pourrait dans un
futur pas trop lointain envoyer un message à une ampoule pour qu'elle
s'allume. Et pour ça, il fallait plusieurs dizaines d'octets de
message, ce qu'on aurait pu faire en ASN.1 codé DER (ou autre) en
quelques octets seulement.


Je ne connais pas DER. Avec ASN.1 BER, il faudrait bien quelque dizaines
d'octets aussi. Mettons une vingtaine avec BER, et une trentaine avec
XML. Mais c'est difficile à comparer -- le BER présuppose une
connexion, avec une négotiation des types qu'on est près à accepter
lors de l'établissement de la connexion. Tandis qu'il est concevable à
envoyer un message XML en UDP.

Dans les deux cas, il faudrait compter sur un minimum de 32 Ko de code
dans l'ampoule. Sans parler du code (et du hardware spécifique) pour
gerer les protocols des couches inférieurs (IP, TCP ou UDP, etc.)

C'est un exemple type où les protocols (ou des formats) élaborés sont
des marteaux pilons pour écraser une mouche.

Un exemple aussi minable et un tel gaspillage de ressources, ça m'a
dégouté du machin en question.


Comme toujours, il faut prendre des moyens par rapport au problème. Ni
ASN.1/BER ni XML ne sont fait pour gerer une simple ampoule. ASN.1/BER
règne en matière de gestion de reseau (SNMP, mais aussi tous les gros
reseaux de télécom). XML sert beaucoup dans des applications
commerciales réparties, surtout quand plusieurs sociétés y sont
impliquées. Ils sont tous les deux très bon pour ce qu'il cible. Le
problème, c'est d'essayer à les utiliser où ils ne conviennent pas.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16



Avatar
Christophe de Vienne
wrote:

Christophe de Vienne wrote in message
news:<newscache$i3rchh$u7i$...
wrote:

Christophe de Vienne wrote in message
news:<newscache$5s5chh$b0g$...
wrote:

On peut aussi utiliser un format existant et déjà portable (je
pense à XML).



Pourquoi faire simple si on peut faire compliqué, n'est-ce pas ?


Mais XML _est_ simple...


On voit que tu ne l'as jamais vraiment utilisé:-).


Si si...




L'avantage du XML, évidemment, c'est que tu peux te télécharger un
parseur qui a des chances de marcher. Si la structure des données est
complexe et variable, et que tu peux te permettre l'expansion de taille,
c'est à considérer pour cette raison. Si la structure n'est pas complex,
il est souvent plus simple d'écrire un parseur de rien que d'écrire des
spécifications XML (le schéma ou le DTD). Et si la structure est figée,
tu n'as pas besoin vraiment d'un parseur, ni de toutes les informations
supplémentaire dans le fichier XML.



Dans l'ensemble je pense qu'on est d'accord sur les avantages et
inconvénients de XML. Et je suis d'accord que dans beaucoup de cas simples
un simple fichier texte est largement suffisant. Les fichiers de
configuration de mes programmes ne sont généralement pas en XML.

Egalement SI on veut que le format soit très facilement lisible par un
programme quelconque don't l'auteur n'aurait pas accès à notre
bibliothèque si portable qu'on a conçu pour ça (voir même sans
documentation),


SI ton application peut utiliser un schéma pré-existant, c'est vrai.
Sinon, ce n'est pas l'utilisation du XML qui va changer quelque chose.
Du XML avec un schéma sur mésure, c'est comme n'importe quel autre
format que tu inventes toi-même.


L'avantage que j'y vois est que XML est 'naturellement' lisible (oui, je
sais tout est relatif mais avec un peu d'habitude...).


SI on veut pouvoir lire le fichier en question avec un simple éditeur
de texte,


Un fichier texte est préférable. Toujours, quand on peut. Là, je suis
d'accord. Mais le XML n'est pas le seul format texte possible.


Tout à fait.


SI on veut utiliser des encodages ésotériques...


Et pourquoi est-ce qu'on voudrait faire une chose comme ça ? Si mon
programme ne sait pas écrire un encodage, quel est l'intérêt de
l'utiliser.


Pour que les fichiers générés par mon application soient réutilisable par un
programme japonais ? L'UTF-8 comme format de stockage est assez interessant
pour cette raison. Mais en mémoire ce n'est pas forcément le plus simple.
En XML l'UTF-8 est souvent l'encodage par défaut, ce qui inscite donc à
l'utiliser. Alors que sur un format 'perso', il faut vraiment le vouloir...
Cela dit ce n'est pas vraiment un argument de poids...


De toute façon, sans savoir ce qu'il veut faire avec ses données, on ne
peut pas dire quel serait le meilleur format. (Quelqu'un d'autre a
supposé qu'il veut les exécuter -- qu'il voulait un programme qui
convertirait un a.out Solaris (Sparc ?) en un a.out Linux (Intel ?). Ça
doit être possible, mais ce en serait pas un programme trivial.)


Ça revient à faire un émulateur à peu de choses près non ?

--
Christophe de Vienne
Experience is something you don't get until just after you need it.
Oliver's Law.





1 2 3