ファイルからバイナリデータの読取

ファイルからバイナリデータの読取list_39.c)
/*-----------------------------------------------------------------
  bdata.c: ファイルからバイナリデータの読取
  -----------------------------------------------------------------*/
#include <stdio.h>

int main(int argc,char*argv[])
{
    int i,readn;
    FILE* fp;
    unsigned char buff[BUFSIZ];
    if(argc>=2){
        if((fp = fopen(argv[1],"rb"))==NULL) {
            printf("read error.");
            return 0;
        }
    } else {
        fprintf(stderr,"USAGE: %s filename\n",argv[0]);
        return -1;
    }

    readn=fread(buff,sizeof(char),BUFSIZ,fp);
    while(readn){
        for(i=0;i<readn;i++){
            printf("%x,",buff[i]);
        }
        printf("\n");
        readn = fread(buff,sizeof(char),BUFSIZ,fp);
    }
    return 0;
}
実行結果
Gami[98]% ./list_39.exe
USAGE: ./list_39.exe filename
Gami[99]% ./list_39.exe melody.wav
52,49,46,46,ca,5f,0,0,57,41,56,45,66,6d,74,20,10,0,0,0
0,64,61,74,61,a6,5f,0,0,f9,ff,9,0,f5,ff,f,0,e6,ff,4e,0
,ff,d3,ff,da,ff,e1,ff,2,0,36,0,a5,0,4f,1,32,2,27,3,59,
2d,5,29,4,5e,2,74,ff,bf,fb,d,f8,70,f5,8e,f4,80,f5,6d,f
c,b5,fd,61,fe,6,ff,99,ff,f8,ff,c,0,14,0,5a,0,b4,0,86,0
,4e,ff,40,1,9c,1,83,0,b5,fe,d,fd,26,fc,91,fc,c2,fe,cf,
f,a,ff,d9,fd,5f,fd,69,fe,4a,1,22,5,49,8,94,9,3,9,c3,7,
6,6,a3,3,2c,1,7d,ff,4a,fe,dd,fc,7a,fa,ca,f6,c2,f2,19,f
f,90,fd,c1,fa,cc,f8,68,f9,e4,fc,74,2,54,8,41,c,23,d,dc
4,fa,f1,f7,ec,f6,d0,f6,e4,f6,59,f7,d9,f8,ff,fa,49,fc,f
c,fd,c9,0,1f,3,16,4,df,2,1,ff,ce,f8,d7,f1,e1,ec,87,ec,
inserted by FC2 system