ファイル解析サンプル

#include

int main(){

FILE *fp;
unsigned char buf[4];
int n,size,count,result;
int in;

for(n=0;n<10;n++){
printf("buf[%d] %x \n",n,buf[n]);
// buf[n]=0;
}
buf[7]=0;

if*1==NULL){
// if*2==NULL){
printf("file open err\n");
return;
}
// size = 1;
// fwrite(&size,sizeof(int),1,fp);
#if 1
count = fread(&in,sizeof(int),1,fp);
printf("int size %d \n",sizeof(int));
printf("read size %x \n",in);
// printf("read size %x \n",in[1]);
// printf("read size %x \n",in[2]);
// printf("read size %x \n",in[3]);
#else
for(;;){
count = fread(buf,1,4,fp);
printf("read size %d \n",count);
if(count){
size = 0;
size |= buf[0]<<24 ;
size |= buf[1]<<16;
size |= buf[2]<<8;
size |= buf[3];

printf("atom size %d \n",size);

fread(buf,1,4,fp);

printf("atom type %s\n",buf);

result = fseek(fp,size-8,SEEK_CUR);
printf("seek result %d \n",result);
// printf("ファイル位置 = %ld\n",ftell(fp));
}
else {
printf("file end\n");
break;
}
}
#endif
fclose(fp);
return;
}

*1:fp = fopen("sample.3gp","rb"

*2:fp = fopen("sample.txt","w"