(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/>