用C读取指定文件的扩展名

用chkdsk命令检测磁盘后会将受损的文件修复后,放在一个文件夹里。然而修复后的文件文件名和扩展名统统丢失,只剩下一堆对用户毫无意义的序号。

如何区别这些文件呢?他们其中有视频有图片或者软件。


之前见过一款软件能“修复”特定扩展名的此种文件。

非常好奇,后来又从拖拉一些没有后缀或者后缀错误的文件到影音文件中,发现依然能识别,那么问题来了,识别信息可能就在目标文件里。

进一步的参照资料找到了答案。一般约定文件的前几个字节是扩展名。(文本文件显然不是)

最近在学PE结构,搞得头昏脑胀。转念想:为何不用已掌握的知识去熟悉一些东西呢?比如玩一下灵活的指针......

代码最终还是没有用到任何复杂的知识。


代码如下:

#include "stdio.h"


int main(int argc, char** argv)
{
	char** lujin = { 0 };//二级指针


	
	FILE *fp=NULL;
	

	char kzm[10] = { 0 };

	lujin = argv[1];


	//路径错误
	if (lujin==0)
	{
		printf("ERROR argv");
		getchar();

		return 1;
	}

	

	fp = fopen(lujin, "r");



	//读取错误
	if (fp == NULL)
	{
		printf("ERROR file");
		printf("%s", lujin);
		getchar();

		return 2;
	}

	fgets(kzm, 5, fp);//识别文件前(5—1)个字符当作扩展名
	printf("%s",kzm);
	getchar();

	fclose(fp);
	fp = NULL;




	return 0;

}
二级指针搞得有点昏。欠缺的东西最后还是得补回来呀。

使用方法是将待检测文件拖到我们的程序上。

列举一个例子:

PDF


RAR

二进制可执行文件(exe,dll,等等)

这个是什么?Lnk快捷方式。就是桌面上的链接。

被鉴定文件是jpeg文件。由于jpeg文件不单单使用前几个字节来描述自己,所以就成这样了。当然如果你看到这个结果还可能是别的什么文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值