文件类型快速判定(Magic Number)

文件的后缀名并不能准确判断其类型,尤其是在Linux系统中。通过使用`file`命令可以查看文件的真实类型,而在C/C++程序中,可以读取文件头部的二进制数据(魔数)来判定文件类型,如微软图标文件的魔数。然而这种方法可能有误差且不能确认文件完整性。可以结合魔数表进一步判断,参考资源包括魔数列表和文件系统类型列表。这提供了一种快速但不绝对的方法来识别文件类型。
摘要由CSDN通过智能技术生成

后缀名判断文件类型十分不准确, 并且linux上也不需要有文件后缀, 我们如何判断文件类型呢.

比如使用bash 命令 file ,可以看出文件的真实类型并不是png,而是windows icon图标

file logo.png 
logo.png: MS Windows icon resource - 7 icons, 16x16, 16 colors, 4 bits/pixel, 16x16, 8 bits/pixel


我们c/c++程序中呢? 我们可以读取文件的头部二进制数据

根据这前几位来判断是什么类型

vi logo.png    :%!xxd

00000000: 0000 0100 0700 1010 1000 0100 0400 2801  ..............(.
00000010: 0000 7600 0000 1010 0000 0100 0800 6805  ..v...........h.
00000020: 0000 9e01 0000 0000 0000 0100 2000 2820  ............ .( 

0000 0100 然后对照文件类型的魔数,可以判定为 .microsoft.icon

"ico": {
"signs": [
"0,00000100"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值