[C con Clase] Archivos binarios vs archivos de texto

Javier Sánchez antydesk en ad-inet.org
Sab Abr 7 13:43:22 CEST 2007


Como que cambiaba la alineación ??? explicate.... yo veria mas logico
almenos sin saber lo querias decir que los tipos de dato fuesen diferentes
dependiendo de compiladores....

Un saludo.


hectorfh en gmail.com escribió:
> Hola nuevamente:
>
> Por último dejenmé contarles una anécdota.
>
> Trabajando con archivos binarios una vez, hice un programa que
> guardaba un arreglo de estructuras "a lo bruto" utilizando la función
> "fwrite" para luego leerlo con "fread".
>
> Luego de compilar el fuente, correr el programa y generar el archivo,
> no recuerdo por qué, volví a compilar con otro compilador. Al intentar
> leer el archivo binario tenía problemas y no funcionaba.
>
> Después de investigar varios minutos me dí cuenta de lo siguiente:
> ¡los tamaños de las estructuras no coincidían! La razón era que el
> compilador que utilicé la segunda vuelta cambiaba la alineación de los
> campos para optimizar el acceso a los mismos. Por lo tanto las
> estructuras eran distintas a nivel "bit". El error mío fue escribir y
> leer la estructura como venía, en lugar de hacerlo campo a campo.
>
> Saludos
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>


Un saludo, Javier Sánchez (AntyDesk)
------------------------------------
Web: http://www.ad-inet.org
Email personal: antydesk en ad-inet.org
Email trabajo: info en ad-inet.org
------------------------------------
"Realmente, no estoy tratando de destruir a Microsoft. Ese será tan solo
un efecto colateral no intencionado."
Linus Torvalds (2003)

Hay 10 tipos de personas en este mundo, las que saben de binario y las que
no.

En que grupo estas tu?

------------------------------------
Linux Users nº 445830.







Más información sobre la lista de distribución Cconclase