Ce code enregistre dans /home/debug.txt un dump du fichier entré en argument à l'éxécution du programme.
c'est plus ou moins inutile,mais il y a un début à tout!
Source / Exemple :
#include <stdio.h>
/* pour compiler avec gcc: gcc dump.txt -o dump */
/////////////////////////////////////////////////
// dump de fichier pour linux //
// //
// commande:nom_executable nom_fichier d_entree//
/////////////////////////////////////////////////
int main(int argc,char* argv[])
{
int a=-16,i,b[16],c;
unsigned size=0;
FILE *fp,*fo;
fo=fopen("/home/debug.txt","w"); //ouverture du fichier pour enregistrer le dump
if ((fp=fopen(argv[argc-1],"r"))==NULL)
{
printf("Echec lors de l'ouverture du fichier \"%s\".\n",argv[argc-1]);
exit(1);
}
printf("Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
fprintf(fo,"Ouverture du fichier \"%s\" réussie.\n",argv[argc-1]);
fprintf(fo,"\n---------------- Debug : ----------------\n\n");
puts("En cours ...");
do
{
fprintf(fo,"%08X\t",a+=16);
i=0;
while (i<16 && c!=EOF)
{
size++; //incrementation de la variable contenant la taille du fichier
c=fgetc(fp); //octet suivant du fichier
if (i==8) fprintf(fo," - ");
fprintf(fo,"%02X ",b[i]=c);
i++;
}
fprintf(fo,"\t");
for(i=0;i<16;i++)
{
if (isprint(b[i]))
fprintf(fo,"%c",b[i]);
else
fprintf(fo," ");
}
fprintf(fo,"\n");;
}while (c!=EOF);
fprintf(fo,"\nFin du fichier\nTaille du fichier:%d octets soit %f Ko.",size,(float) size/1024);
puts("Debug enregistré dans le fichier /home/debug.txt");
fclose(fp);
fclose(fo);
return 0;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.