[LatinaLUG] Little endian/ big endian

Franco frank@reker.net
Mer 11 Giu 2003 13:21:55 CEST


Il Tue 10 Jun 2003 13:33 +0200, Polli Roberto ha scritto:

>Ciao a tutti,
>Anche se la lista langue un po':
>Ecco un'altro dei miei quiz da un milione di euri ;-)
>Ho due file binari: uno prodotto da hp-ux che e' in formato big endian ed
>uno creato sotto linux dalla versione linux della stessa applicazione ed il
>cui formato e' in little endian.
>La dimensione dei due files e' identica ed il problema e' convertirli da un
>formato all'altro: l'applicazione per linux infatti non riesce a leggere il
>file prodotto dall'analoga per hp-ux e viceversa.
>Ho gia' provato con un po' di file sia in c che in perl, nonche' col comando
>dd passandogli l'opzione swab in modo che scambiasse i byte. 
>La meta' della prima riga del file e' ok, ma dopo tutto va' a ... male!
>Resta poi il problema dell'interpretazione delle stringhe ascii contenute
>nel file, stringhe I cui caratteri vengono swappati!

Non e` una cosa facile! Se il file e` omogeneo (vuol dire un array di
campi di tutto 2 byte (o 4 byte)) e` facile, alora anche puoi usare dd. Se
invece il file contienne campi di 2 byte, campi di 4 byte e stringhe
di ASCII (che non hanno un byte order, perche' sono stringhe di 
singoli byte), allora devi anche conoscere la struttura interna del
file, per sapere quale campi di swappare e di quale grandezza sono.
Cmq. se una volta conosce la struttura del file e` facile scrivere un
programmino (in C o Perl) che lo swappa.


-- 
Don't worry, be happy...
Ciao tex
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/private/latina/attachments/20030611/a75d3416/attachment.bin


Maggiori informazioni sulla lista latina