(Courriels de diversion: <tritureras@estrades-busards.com> <falsifierai@onduleur-youyous.com> <naîtrons@gobelins-confirmais.com> <industrialisez@tonsure-evolutionniste.com> <vouvoies@raccompagnerons-enquêteuse.com> <terrifiantes@cachous-confectionneuses.com> <etend@justifiaient-travestirent.com> <cloueriez@chaire-paralysa.com> <inculqueront@perfectionnement-controlable.com> <municipalite@retrocederai-pivoines.com> )
[Nom retiré à la demande de l'auteur] wrote:
-----Message d'origine-----
De: dominique.sommavilla@free.fr
Elle est nécessaire parce que Unix est indépendant du matériel, alors que le
format little/big endian ne l'est pas.
....
pourra être codée : 01234567 (little/little endian)
45670123 (little/big endian)
23016756 (big/little endian)
67452301 (big/big endian)
Je rajouterais un petit morceau de code péché sur internet qui donne le
type de la machine :
/////////////////////////////////
#include <stdio.h>
#include <string.h>
char * endian()
{
static long int str[2] = { 0x41424344,0x0 }; /* ASCII "ABCD" */
if (strcmp("DCBA", (char *) str) == 0)
return("little-endian");
else if (strcmp("ABCD", (char *) str) == 0)
return("big-endian");
else if (strcmp("BADC", (char *) str) == 0)
return("PDP-endian");
}
main()
{
static long int str[2] = { 0x41424344,0x0 }; /* ASCII "ABCD" */
printf("if your machine does print : \n");
printf(" DCBA = little-endian ( VAX, PC )\n");
printf(" ABCD = big-endian ( MC6800, Sun4, HP9000/715
)\n");
printf(" BADC = PDP-endian ( PDP-11 )\n\n");
printf("your machine gives : '%s', so it is a '%s' one\n",
(char *) str, endian());
}
////////////////////////////////
Si les conversions ne sont pas trop complexes, le problème peut se
résoudre à grand coup de "hton[sl]" et "ntoh[sl]" qui ne font rien sur
des machines big endian et inversent proprement l'ordre sur les machines
little endian.
Si les structures sont compliquées, j'utilise XDR ou CDR (
Stéphane
--
In space, no one can hear you fart.
---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>