【C】ファイルがバイナリかどうかの判断
ファイルがバイナリかテキストか自動で判断する簡易的な方法。
ファイルの最初の1000文字くらいを調べ、ASCIIコード 00H ~08H があればバイナリーとみなす。
int isBinaryFile(char *fname)
{
FILE *fp;
int c;
int i;
fp = fopen(fname, "rb");
if(fp == NULL) {
printf("ERROR: %s cannot open \n", fname);
return -1;
}
i=0;
while((feof(fp)==0) && (i<1000))
{
c = fgetc(fp);
if(c == EOF) {
break;
}
else if(c <= 8) {
//binary
fclose(fp);
printf("%s is Binary. \n", fname);
return 1;
}
i++;
}
fclose(fp);
printf("%s is ASCII. \n", fname);
return 0;
}