elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Manejo de archivos por dos equipos (No simultaneo) ~ Dropbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Manejo de archivos por dos equipos (No simultaneo) ~ Dropbox  (Leído 1,943 veces)
Brandford

Desconectado Desconectado

Mensajes: 3


Wheezy


Ver Perfil
[C] Manejo de archivos por dos equipos (No simultaneo) ~ Dropbox
« en: 27 Agosto 2013, 16:29 pm »

Saludos a todos

Hace dos días termine de desarrollar una aplicación ‘Manejadora de Notas’ programada en C.

Esta aplicación está totalmente funcional, cumple todo los requerimientos que necesito, y las pruebas que he realizado son buenas.

Básicamente esta aplicación está compuesta por una estructura base, con la cual se van llenando los archivos, aplicando métodos de búsqueda y eliminación como también copias de seguridad.

Código fragmentado vía pastebin
Citar

Netamente uso de fread() y fwrite()

Datos extras:
Sistema Operativo: Linux Debian Wheezy
Entorno de Desarrollo integrado: Anjuta

Una vez terminada la aplicación he generado un Tarball (tar.gz) y la he instalado, y luego de unas pruebas pude asegurarme de su buen funcionamiento

Los problemas comienzan acá, tuve la idea de instalar la aplicación en una Laptop con las mismas características antes mencionadas, con la intención de poder acceder a un archivo base en común, no simultáneamente, sino por separado aprovechando las ventajas de la sincronización de Dropbox.

Pero los resultados no fueron los que esperados, detallando, el ingreso de información al archivo lo hice desde el PC de escritorio y la lectura del archivo con el Laptop, y ahí me lleve una mala sorpresa, ya que el archivo fue mal reconocido, detectaba información pero distorsionada.

Pronto pondré una captura, por ahora puedo dar un ejemplo con datos parecidos
PC Escritorio (creador):
Numero Registro: 1
Numero Registro: 2
Numero Registro: 3
Numero Registro: 4
Numero Registro: 5

Laptop (no-creador):
Numero Registro: 1
Numero Registro: 0
Numero Registro: 14523
Numero Registro: 0
Numero Registro: 0

Las pruebas también las hice en un Disco Externo y los resultados fueron los mismos, por lo que puedo deducir que el medio de almacenamiento no importa, los problemas se producen cuando una aplicación distinta a la creadora del archivo accede al fichero


En línea

Debian Wheezy 64 bits
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [C] Manejo de archivos por dos equipos (No simultaneo) ~ Dropbox
« Respuesta #1 en: 28 Agosto 2013, 20:29 pm »

Estas guardando la información en bruto, sin formato. Imagino que lo que te sucede es que una arquitectura es big endian y la otra little endian. Ambas arquitecturas no son compatibles binariamente por cuestiones obvias.

Lo mejor cuando trabajas con diferentes arquitecturas (en resumen, diferentes pcs) es guardar la información en archivos con formato (XML por ejemplo).

La gran ventaja de estos sistemas es que el contenido del archivo se puede leer sin problemas en todas las arquitecturas. El inconveniente es que la lectura y escritura es un poco mas elaborada... Pero nada del otro mundo.


En línea

Brandford

Desconectado Desconectado

Mensajes: 3


Wheezy


Ver Perfil
Re: [C] Manejo de archivos por dos equipos (No simultaneo) ~ Dropbox
« Respuesta #2 en: 1 Septiembre 2013, 09:16 am »

Se agradece eferion, tenías razón, el error de lectura se producía porque la arquitectura de los sistemas operativos que accedían a los archivos era diferente, PC de escritorio 32 bits y Laptop 64 bits. Teniendo un sistema operativo (Linux) bajo la misma arquitectura pueden compartir archivos sin problemas.
« Última modificación: 1 Septiembre 2013, 12:48 pm por Brandford » En línea

Debian Wheezy 64 bits
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines