如何用c语言判断一个未知文件的文件类型
发布网友
发布时间:2022-04-22 05:10
我来回答
共2个回答
热心网友
时间:2023-07-07 14:18
打开文件容易,读几个字符容易,判断类型较难。
下面程序判断 .exe .jpg .gif 格式
读入的前20个字节在 char s[20] 中。
你愿意把它看成10进制,16进制都可以。
输入形式:
可执行程序名 要判断的文件名
例如:
ccalb.exe file.gif
#include <stdio.h>
#include<stdlib.h>
main(int argc, char *argv[]){
FILE *fin;
char namein[80];
char s[20];
if (argc<2) {
printf("Usage: \007 %s filename\n",argv[0]);
return 0;
}
strcpy(namein,argv[1]);
fin = fopen(namein,"rb");
if (!fin){
printf("Open %s error\n",namein);
return 0;
}
fread(s,20,1,fin);
fclose(fin);
if (s[0]=='M' && s[1]=='Z') printf("It is .exe file\n");
else if (s[6]=='J' && s[7]=='F' && s[8]=='I' && s[9]=='F')printf("It is .jpg file\n");
else if (s[0]=='G' && s[1]=='I' && s[2]=='F' ) printf("It is .gif file\n");
else printf("other file");
return 0;
}
热心网友
时间:2023-07-07 14:19
上网搜把,不同文件都有自己的结构体追问就是搜不到才来问的