Título: Problema al escribir archivo - 0D le precede a 0A (Solucionado) Publicado por: AlbertoBSD en 9 Mayo 2016, 06:06 am Problema al escribir archivo...
Realmente estoy rompiéndome la cabeza desde hace unos 2 dias... :silbar: :silbar: :silbar: Al momento de guardar datos en un archivo escribo los datos de 2 bytes en 2 bytes. Todo bien pero llega un momento en que el programa no guarda la información que debe de guardar, sin embargo si mando a imprimir lo que esta guardando esta información si es correcta, pero no la que se guarda en el archivo. Código
Mando a llamar a una función debug para ver que es lo que se esta guardando, esta función me imprime el contenido de la memoria sin afectarlo... Código
Aquí lo importante es notar que llamo a fwrite para escribir en el archivo abierto con la opcion "a+" Código
La posición de memoria que se guarda es: primos[offset]->valor y la cantidad de bytes que se guardan con fwrite y se imprimen con debug es primos[offset]->bytes que para el ejemplo dado vale 2 La salida del programa va mas o menos asi... Código: -primos[54]: 0x567fd0 0101 y donde se presenta el problema es la siguiente: Código: -primos[372]: 0x568520 f509 ¿Nada anormal? Claro esa salida esta bien, el problema esta al guardar el archivo en ese ultimo segmento queda asi (Salida hexadecimal) Código: F509F709FD09130D0A1F0D0A210D0A310D0A390D0A3D0D0A490D0A570D0A610D0A630D0A670D0A6F0D0A750D0A7B0D0A7F0D0A810D0A850D0A8B0D0A930D0A970D0A990D0A9F0D0AA90D0AAB0D0AB50D0ABD0D0AC10D0ACF0D0AD90D0AE50D0AE70D0AED0D0AF10D0AF30D0A030B110B150B1B0B Ahora que lo veo Noto un recurrente 0D y no tengo ni idea de donde sale, el detalle no veo error en donde se guarda el archivo repito: Código
En teoría lo que se muestra en la salida estándar y en el archivo creado debería de ser lo mismo primos[offset]->valor Si a alguien le a pasado algo similar o de plano ve un error que yo no veo por favor avíseme. No creo que sa detalle del sistema, el error se me presenta tanto en FreeBSD y en Windows Título: Re: Problema al escribir archivo Publicado por: tincopasan en 9 Mayo 2016, 12:27 pm la verdad no le entiendo bien a la función, pero si sé que el 0D sale de los saltos de línea, o sea "\n"
Título: Re: Problema al escribir archivo Publicado por: AlbertoBSD en 9 Mayo 2016, 13:11 pm Gracias, lo interesante que aparece el 0D y aparece en medio del numero a imprimir.
Código: -primos[372]: 0x568520 f509 -> Sin cambios Todos los 0A precedidos por 0D.. esto huele a windows o creo que es algun problema de gcc del DEV C Viendo que era problema de ese caracter exclusivamente me imagine que era la comvinacion \n\r busque en google y puff http://stackoverflow.com/questions/5537066/strange-0x0d-being-added-to-my-binary-file Solucion abrir el archivo anexandole 'b' al fopen Saludos |