please help me with recover. this is my code.with check 50 i am getting this.
:) recover.c exists.
:) recover.c compiles.
:) handles lack of forensic image
:( recovers 000.jpg correctly
000.jpg not found
:( recovers middle images correctly
001.jpg not found
:( recovers 049.jpg correctly
049.jpg not found
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
if(argc!=2)
{
fprintf(stderr,"Usage: ./recover image\n");
return 1;
}
char * name=argv[1];
FILE * rec=fopen(name,"r");
if(rec==NULL)
{
fprintf(stderr,"file opening error\n");
return 1;
}
FILE* outfile;
int c=0;
int found=0;
unsigned char buffer[256];
while(fread(buffer,256,1,rec)==1)
{
if(buffer[0]==0xff && buffer[1]==0xd8 && buffer[2]==0xff && (buffer[3] & 0xf0 )==0xe0)
{
if(found==1)
{
fclose(outfile);
}
else{
found=1;
}
char filename[8];
sprintf(filename,"0%3d.jpg",c);
outfile=fopen( filename,"a+");
c++;
}
if (found==1)
{fwrite(buffer,256,1,outfile);}
}
fclose(rec);
fclose(outfile);
}