Voilà un exemple que j'ai tapé
Code :
char var;
int taille=0;
FILE *out, *in;
clrscr();
struct stat structinfo;
stat("test.exe", &structinfo);
taille = structinfo.st_size;
out= fopen("test.exe", "r");
in= fopen("dest.exe","w");
for (int i=0; i< taille; i++)
{
fread(&var,1,1,out);
fwrite(&var,1,1,in);
}
fclose(in);
fclose(out);
Dans cet exemple j'ouvre 2 exe test et dest (out et in). Lorsque je lis un caractère que j'écris par la suite dans IN il me lit 1 octet qu'il est censé écrire dans OUT. Supposons que la valeur de l'octet lu soit 54 il est censé m'écrire 54 dans mon fichier destination, hors il m'écris tout sauf 54 ? Et ce qui à la base est un prog (sous dos test.exe) en finale me donne dest.exe qui plante lors du lancement . Je comprend que le problème dépend du mode binaire ou texte mais pourquoi 54 représentant un caractère quelconque, bah en binaire il s'écrit pas 54 ????