Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: prosco en 17 Mayo 2011, 22:41 pm



Título: [MOD] fichero binario
Publicado por: prosco en 17 Mayo 2011, 22:41 pm
Hola a todos

Cuando leo de un fichero binario y escribo en otro:

fp = fopen("viejo.exe","rb+");
fn = fopen("nuevo.exe","w+");

while((c=getc(fp))!=EOF)
fputc(c,fn);

fclose(fp);
 fclose(fn);

Al leer un carácter 0x0A de viejo.exe escribe 0x0D y 0x0A en nuevo.exe

Alguien me puede explicar por que?


Título: Re: ayuda porfavor
Publicado por: willyhunting en 17 Mayo 2011, 23:31 pm
Hola prosco,

Así, echando un vistazo por encima, revisa lo siguente:

  • Si los ficheros son ejecutables, ¿por qué abres el de lectura como binario y el de escritura como un archivo de texto? Ambos deberían abrirse como archivos binarios.
  • Si en uno sólo vas a leer y en el otro solo vas a escribir, ¿por qué los abres en modo lectura/escritura ambos (caracter +)? Debería abrirse el de lectura en modo lectura y el de escritura en modo escritura.
  • Si trabajas en modo binario, deberías utilizar fread y fwrite, en lugar de fgetc y fputc. Es más coherente, y te evitarás comportamientos sorpresa.