OVH Cloud OVH Cloud

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
Franck Guillaud
wrote:
Christophe de Vienne wrote
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.


Comment savoir en début de projet que la structure restera figée ?
XML est aussi interressant pour la simplicité d'évolution qu'il offre.

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.


Sauf que tu n'as -à priori- pas à redévelopper les outils de parsing et de
validation.

Franck.


Avatar
Erwann ABALEA
On 2 Jul 2003 wrote:

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


[...]

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.


Moi je manipule des données encodées DER tous les jours, et je crois bien
que je n'ai pratiquement jamais vu de BER. Comme quoi... ;)
C'est vrai qu'on peut encoder de l'ASN.1 en XML, si on veut. Mais ça n'est
pas la pratique courante.

[...]
Je ne connais pas DER. Avec ASN.1 BER, il faudrait bien quelque dizaines


DER est utilisé quand on veut être certain qu'il n'y a qu'un seul encodage
possible, alors qu'en BER, on peut modifier un peu l'encodage, du moment
que sémantiquement parlant le résultat est équivalent. Mais à part ça, le
BER et le DER sont très proches.

d'octets aussi. Mettons une vingtaine avec BER, et une trentaine avec
XML. Mais c'est difficile à comparer


Là, de mémoire, c'était environ le double (une soixantaine). Et la valeur
sémantique transportée dans l'exemple ne nécessitait pas 20 octets de DER.
Encore qu'il est aussi possible de gacher des ressources en concevant des
structures mal foutues...

-- 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.


Ni DER ni BER ne présupposent de connexion ou de négociation. Une
application utilisant du BER/DER pour échanger ses données peut imposer ce
mode de fonctionnement, mais c'est lié à l'application elle-même, pas au
codage. Comme je le dis plus haut, je manipule des données codées en DER
tous les jours, et il n'y a pas de connexion à proprement parler.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
CE>Je ne sais pas si vous etes la personne adequat mais il y a un
CE>"dégénéré mental " qui veut enculer tous le monde sur frsf
ne vous inquiétez pas, ce n'est pas possible via Usenet :)
-+-LW in Guide du Neuneu Usenet - Après les mouches, à qui le tour ? -+-



Avatar
kanze
Christophe de Vienne wrote in message
news:<newscache$1m3ehh$o7m$...
wrote:

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.


Ni les fichiers de persistance, j'imagine. Ni les fichiers de
journalisation (utiliser pour s'assurer des l'integrité transactionale,
par exemple). Ni les fichiers de log. En fait, j'ai beau chercher, je ne
vois pas de cas où je mettrais des fichiers locaux en XML.

Si tu vas sur la toile, c'est une autre question. Le grand avantage de
XML (et pratiquement le seul), c'est que c'est une norme. Tu publies ton
schéma, et tu peux t'attendre à ce que d'autres puisse accéder à tes
données sans trop de problèmes. Si c'est ce qu'il faut, il faut bien
considérer XML. Sinon, mieux vaut le laisser tomber.

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...).


Qu'est-ce qui se lit le plus facilement :

<program>
<source>
<preprocessor-decl type="include">&lt;iostream&gt;</preprocessor-decl>
<preprocessor-decl type="include">&lt;ostream&gt;</preprocessor-decl>
<declaration type="function" definition>
<data-type>int</data-type>
<name>main</name>
<parameter-list></parameter-list>
<body>
<statement type="expression-statement">
:
:
:

ou

#include <iostream>
#include <ostream>

int
main()
{
std::cout << ...
:
:
:

?

Selon le contexte, beaucoup de choses sont naturellement lisible. Donc,
par exemple, si tu sais qu'il s'agit d'un programme C++, et que tu as lu
jusqu'à « int main ( ) { », tu sais que ce qui suit est une
instruction@; tu n'as vraiment pas besoin d'un <statement> tag pour te
le dire. (Évidemment, l'exemple aurait été encore mieux avec un autre
langage, disons Ada, où il n'avait pas de chose comme :
std::vector< int > v( std::istream_iterator< int >( file ),
std::istream_iterator< int >() ) ;
pour prêter à la confusion.)

Ce qui fait la lourdeur de XML, c'est précisement qu'il insiste à
préciser le contexte partout. Si on a affaire à des données sans
contexte, qui peuvent se présenter d'une façon ambigüe, c'est à
considérer. Sinon, c'est du verbiage pour rien.

Typiquement, quand c'est ton programme qui écrit, et ton programme (ou
un autre de toi) qui lit, le contexte est plus ou moins connu. Des
encodages qui précisent le contexte, qu'ils soient textuels, comme XML,
ou binaire, comme ASN.1/BER, n'apporte que des octets en plus, sans rien
d'autre. C'est une lourdeur dont on s'en passerait volentairement.

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...


C'est bien beau, mais si mon système C++ ne sait pas écrire du UTF-8
(c'est le cas ici, par exemple, que je compile ou avec Sun CC ou avec
g++), le fait que le format que j'écris le supporte ne me sert
absolument à rien.

--
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
"Franck Guillaud" wrote in message
news:<bdu8c7$k6j$...
wrote:
Christophe de Vienne wrote
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.


Comment savoir en début de projet que la structure restera figée ?
XML est aussi interressant pour la simplicité d'évolution qu'il
offre.


C'est ce qu'on dit. Dans la pratique, ce n'est pas beaucoup mieux que
d'autres choses à cet égard.

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.


Sauf que tu n'as -à priori- pas à redévelopper les outils de parsing
et de validation.


Mais si. Pour qu'un parseur XML puisse faire quelque chose
d'intéressant, il faut qu'il dispose d'un schéma, ainsi que des
handleurs propre à l'application pour les éléments et les attributes (au
minimum). Pour des structures simple, souvent, déveloper un parseur avec
les handleurs integrés est bien plus simple.

Prenons un cas tout simple : le crontab de Unix. Avec le format actuel,
et des outils que j'ai sous la main (« field array », « filtering input
streams »), j'aurais probablement un programme qui tourne sur la base du
format actuel en moins de temps qu'il faudrait pour définir un schéma
XML. Évidemment, je pers un peu de souplesse -- le jour où les heures ne
se divisent plus en minutes, je suis dans le petrin. Mais c'est une
risque que je suis prêt à prendre.

--
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 2 Jul 2003 wrote:
Erwann ABALEA wrote in message
news:...
On 1 Jul 2003 wrote:



[...]
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.


Moi je manipule des données encodées DER tous les jours, et je crois
bien que je n'ai pratiquement jamais vu de BER.


Tu t'es sûrement servi du BER, bien qu'à ton insu. Il sert dans toutes
les applications téléphoniques modernes ; donc, si tu t'es jamais servi
d'un téléphone RNIS ou d'un portable, tu t'es servi du BER. Sur le
reseau, évidemment, SNMP et LDAP sont basés tous les deux sur BER.

Mais je vois que BER, CER et DER sont couvert par la même norme (X.690).
Je ne connaissais que BER (mais j'ai appris tout ça il y a un certain
temps), mais j'imagine que les autres deux lui ressemble. Il y a aussi
un PER (X.691) et une X.693 : Encoding Using XML or Basic ASN.1 Value
Notation.

Comme quoi... ;) C'est vrai qu'on peut encoder de l'ASN.1 en XML, si
on veut. Mais ça n'est pas la pratique courante.

[...]
Je ne connais pas DER. Avec ASN.1 BER, il faudrait bien quelque
dizaines


DER est utilisé quand on veut être certain qu'il n'y a qu'un seul
encodage possible, alors qu'en BER, on peut modifier un peu
l'encodage, du moment que sémantiquement parlant le résultat est
équivalent. Mais à part ça, le BER et le DER sont très proches.


D'accord. C'est la même principe, en tout cas.

d'octets aussi. Mettons une vingtaine avec BER, et une trentaine
avec XML. Mais c'est difficile à comparer


Là, de mémoire, c'était environ le double (une soixantaine). Et la
valeur sémantique transportée dans l'exemple ne nécessitait pas 20
octets de DER. Encore qu'il est aussi possible de gacher des
ressources en concevant des structures mal foutues...


C'était juste pour donnée un ordre de grandeur.

-- 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.


Ni DER ni BER ne présupposent de connexion ou de négociation. Une
application utilisant du BER/DER pour échanger ses données peut
imposer ce mode de fonctionnement, mais c'est lié à l'application
elle-même, pas au codage. Comme je le dis plus haut, je manipule des
données codées en DER tous les jours, et il n'y a pas de connexion à
proprement parler.


En effet. Je pensais plutôt à l'utilisation que nous en faisons.

BER, au moins, permet d'omettre l'information de typage dans certains
contextes, où la structure est fixe et connue d'avance. Dans les
protocols que nous utilisions, lors de la connection, on négociait les
structures qu'on voulait supporter ou qu'on acceptait de supporter. Par
la suite, on avait théoriquement la possibilité d'ôter l'information du
type à l'intérieur de la structure. Tant que j'y étais, en revanche,
c'était toujours pour la prochaine version.

--
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
Erwann ABALEA
On Wed, 2 Jul 2003, Martinez Jerome wrote:

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


Déconne pas, je ne suis pas si vieux... ;)

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.


Sans trop programmer, je n'en suis pas sûr.... On trouve d'aussi bons
parseurs ASN.1/DER que de parseurs XML. D'accord, le déboggage est
légèrement plus difficile, mais c'est pas extraordinaire non plus... Donc
l'argument sur le temps de programmation ne tient pas.

A la limite, je me dis que je préfère un protocole exprimé en ASN.1 et
codé en BER/DER (ou autre) à un autre protocole exprimé en XML, tout
simplement parce qu'il y a des mauvais programmeurs partout, et qu'un
mauvais programmeur peut espérer 'connaître' le XML sans avoir lu la
norme, chose quasimment impossible avec l'ASN.1/BER/DER... Le mauvais
programmeur qui fait du XML sans réellement s'être documenté a plus de
chances de pondre du mauvais code, avec les résultats qu'on sait.
En relevant le niveau requis, on opère une sélection, c'est mécanique. ;)

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)


Les fichiers de config d'un Unix ne sont pas en XML (ou du moins c'est une
très faible minorité), mais ce sont des fichiers texte. Le but ici n'est
pas d'améliorer le rendement du programme, mais plutôt de facilité le
travail de l'administrateur. C'est bien connu, le meilleur outil
d'administration, c'est vi... :)

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Common sense isn't.


Avatar
kanze
Martinez Jerome wrote in
message news:<bdu530$...

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.


Ça dépend encore ce qu'on fait. Mes fichiers de persistance, il n'y a
que moi qui doit les lire. Mes fichiers de config ou de log, il n'y a
que moi et des hommes (encore que... mais grep marche mieux sur un
fichier orienté ligne que sur du XML).

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 :)


Linux ne fait que reprend les fichiers de config de Unix. Qui sont en
texte depuis les années 70. Ils sont en texte parce qu'on les édite. Ils
sont orienté ligne parce qu'on les édit avec un éditeur orienté lignes :
ed au départ, mais plutôt vi aujourd'hui. Les fichiers de log sont aussi
du texte, orienté ligne, pour qu'on puisse les exploiter avec des
programmes simple, comme grep. Pour ce genre de chose, XML serait un pas
en arrière -- il me faudrait un outil ultra-puissant (qui ne va pas
marcher quand j'ai un problème système) pour analyser les logs.

--
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
Laurent Oget
writes:


Tout programme de bureautique doit utiliser XML, peut-être, mais pas
forcement pour tout ce qu'il fait. (À mon avis, tout programme qui
génère du texte doit générer du LaTeX. Mais je crois que c'est un
argument perdu d'avance:-).)



ne soit pas defaitiste. pour le LaTeX on est au moins deux, et meme
si on ne genere pas du LaTeX, sauf a jeter toutes les imprimantes,
il faudra bien generer du postscript.

Reste évidemment le dernier argument dont je me passerais bien
volontier : C'est à la mode et d'un point de vue marketing ça marche
bien...


Je crois que c'est la raison principale pourquoi j'argue ici. Le XML a
son utilité, et il y a bien des cas où il convient. Mais je crains que
bien tôt souvent, il sert plutôt pour des raisons de marketing que parce
qu'il convient.



mon impression est que le "triomphe" du XML est un compromis bizarre entre
les developpeurs qui veulent tous utiliser des fichiers textes tout bete, et
les marketoides qui veulent utiliser un format qui leur semble 'moderne'.



--
Laurent Oget, Ph.D. http://oget.net
Senior Engineer Zvolve Systems Inc http://zvolve.com
Chercheur Associé Liafa http://liafa.jussieu.fr


Avatar
Erwann ABALEA
On 3 Jul 2003 wrote:

Christophe de Vienne wrote in message
news:<newscache$9a7ghh$g55$...


[...]
Tout programme de bureautique doit utiliser XML, peut-être, mais pas
forcement pour tout ce qu'il fait. (À mon avis, tout programme qui
génère du texte doit générer du LaTeX. Mais je crois que c'est un
argument perdu d'avance:-).)


Tiens, je ne suis pas le seul à préférer le LaTeX à tout autre format,
logiciel, truc pour faire du texte.... ;)

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
SG> Oû posera-t-on la question "Comment dois-je m'habiller ce soir pour
SG> aller à la crêperie Le Coz avec le maire-ajoint de Ploudeac'h
Devant son placard.
-+- SJ in GNU : Bien se faire habiller pour l'hiver -+-

Avatar
Christophe Lephay
"Erwann ABALEA" a écrit dans le message de
news:
Tiens, je ne suis pas le seul à préférer le LaTeX à tout autre format,
logiciel, truc pour faire du texte.... ;)


Avec le LaTeX, on se sent protégé...

Chris

1 2 3