#include <cstdlib>
#include <stdio.h>
#include <string.h>


#define sig_len 10
const unsigned char sig[sig_len]={0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46};


int main(int argc, char *argv[])
{
    int i;
    unsigned char b[sig_len*2];
    int fcount;
    int len;
    char tmp[32];
    FILE *in;
    FILE *out;

    fcount=0;
    len=0;
    in=0;
    out=0;
    
    in  = fopen("aaa.pic", "rb");
   
    fread(&b[sig_len], sizeof(unsigned char), sig_len, in);

    do
    {
        b[0] = b[10];
        b[1] = b[11];
        b[2] = b[12];
        b[3] = b[13];
        b[4] = b[14];
        b[5] = b[15];
        b[6] = b[16];
        b[7] = b[17];
        b[8] = b[18];
        b[9] = b[19];

        fread(&b[sig_len], sizeof(unsigned char), sig_len, in);

        for(i=0; i<sig_len; i++)
        {
            if((b[i+0]==sig[0]) && \
               (b[i+1]==sig[1]) && \
               (b[i+2]==sig[2]) && \
               (b[i+3]==sig[3]) && \
               (b[i+4]==sig[4]) && \
               (b[i+5]==sig[5]) && \
               (b[i+6]==sig[6]) && \
               (b[i+7]==sig[7]) && \
               (b[i+8]==sig[8]) && \
               (b[i+9]==sig[9]))
            {
                if(out)
                {
                    fwrite(&b, sizeof(unsigned char), i, out);
                    fclose(out);
                }
                sprintf(tmp, "jpg_%.3i.jpg", fcount++);
                out = fopen(tmp, "wb");
                strcat(tmp, "\r\n");
                printf(tmp);
                break;
            }
        }
        if(out)
        {
            if(i>=sig_len)
                 i=0;
            fwrite(&b[i], sizeof(unsigned char), sig_len-i, out); 
        }
    }while(!feof(in) && !ferror(in));
    
    fclose(in);
    fclose(out);
    
    system("PAUSE");
    return 0;
}
