文章目录

  • 前言
  • 一、代码
  • 二、示例
  • 总结

前言

在实际开发的时候有时需要比较文件是否相同,生成md5摘要比较固然是比较好的方法,有时只是需要写个简单的测试程序,在c语言引入md5库就有点麻烦了,直接比对文件内容可能比较耗时但是准确性还是可以保证的。


一、代码

#include<stdio.h>
/// <summary>
/// 比较两个文件内容是否相同
/// </summary>
/// <param name="file1">文件1的路径</param>
/// <param name="file2">文件2的路径</param>
/// <returns>是否相同,1相同,0不相同</returns>
int Compare(const char * file1, const char* file2)
{FILE* f1, * f2;int size1, size2;unsigned char buffer1[1024], buffer2[1024];f1 = fopen(file1, "rb+");f2 = fopen(file2, "rb+");int isTheSame = FALSE;if (!f1)goto end;if (!f2)goto end;while (1){size1 = fread(buffer1, 1, 1024, f1);size2 = fread(buffer2, 1, 1024, f2);if (size1 != size2){goto end;}if (size1 < 1)break;for (int i = 0; i < size1; i++){if (buffer1[i] != buffer2[i]){goto end;}}}isTheSame = TRUE;
end:if (f1)fclose(f1);if (f2)fclose(f2);return isTheSame;
}

二、示例

int main(int argc, char* argv[])
{if (Compare("test.mp4", "test1.mp4")){printf("文件内容相同!");}else{printf("文件内容不相同!");}return 0;
}

总结

以上就是今天要讲的内容,通过直接按字节比较实现的,还是有一定的优化方法的,比如用strcmp比较或者参考.net string源码的方法转指针长度整型比较,但总的来说上述方法还是能用的。

c语言 判断两个文件是否相同相关推荐

  1. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件

    Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...

  2. c语言比较当前日期大小,C语言判断两个日期只差的方法

    C语言判断两个日期只差的方法 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以 ...

  3. python判断相同,Python判断两个文件是否相同与两个文本进行相同项筛选的方法

    python判断两个文件是否相同 import hashlib def gethash(f): line=f.readline() hash=hashlib.md5() while(line): ha ...

  4. C语言两个同名头文件,C lang: C语言中两个头文件引入相同的头文件(Header.h)

    C lang: C语言中两个头文件引入相同的头文件(Header.h) C lang: C语言中两个头文件引入相同的头文件(Header.h) [var1] For example: Header.h ...

  5. python文件比较,判断两个文件是否相同

    # 判断两个文件是否相同.要求用函数实现文件比较功能,在main函数中进行验证. # 下述函数完成文件是否相同的比较功能 def compareFile(file1,file2):#请在此添加代码,实 ...

  6. linux判断两个文件内容,shell怎么判断两个文件内容是否相同

    #cat diff_two_file #/bin/sbin file1=/mnt/mmc/test/aa file2=/mnt/mmc/test/bb diff $file1 $file2 > ...

  7. c语言两程序合并,C语言将两个文件的内容合并到第三个文件中

    原标题:C语言将两个文件的内容合并到第三个文件中 让给定的两个文件是file1.txt和file2.txt.以下是合并的步骤. 1)在读取模式下打开file1.txt和file2.txt. 2)在写入 ...

  8. python判断两线段是否相交_c语言 判断两直线段是否相交

    转了多人的放到一起比较!! //功能:求点在有向直线左边还是右边 //返回:0共线.1左边.-1右边 intleft_right(pointa,pointb,doublex,doubley) { do ...

  9. c语言判断两个单词是否为变位词,C++变位词问题分析

    在<编程珠玑>一书的第二章提到了一个变位词问题,变位词指的是一个单词可以通过改变其他单词中字母的顺序来得到,也叫做兄弟单词,如army->mary.由变位词可以引申出几个算法问题,包 ...

最新文章

  1. 美国部分Android手机竟将用户隐私数据回传至上海服务器!
  2. laravel mysql json_mysql – Laravel JSON where子句不区分大小写
  3. 如何增加儿童产品中的趣味性?
  4. SQL Server 重置Identity标识列的值(INT爆了)
  5. 一次看完28个关于ES的性能调优技巧
  6. python 复制文件_10 行 Python 代码写 1 个 USB 病毒
  7. 朴素贝叶斯算法实现分类以及Matlab实现
  8. Java-Redis 热部署问题
  9. Oracle RMAN备份与还原 - 脱机备份讲解
  10. 一个肥皂泡的破灭(组图)
  11. php7 参数类型限定,PHP 7.2新特性:参数类型声明(附代码)
  12. java 判断两个时间相差的天数
  13. VASSISTX在vs里面应用的快捷键
  14. android 模拟器 超时,Appcelerator Studio超时等待Android模拟器启动
  15. 华为ICT大赛网络赛道考试范围
  16. 微信 表情 android,android - 微信自定义表情在哪个文件夹?
  17. mac/macbook teamviewer 使用 trackpad 触控板双指滑动出问题/出bug/无法控制/无法滚动/速度过快
  18. java星号心形代码_用符号拼一个完整的大爱心 它起源于中国的甲骨文的心字
  19. Elk-Metricbeat配置Tomcat的日志分析 (Metricbeat-part3)
  20. “新基建”下的智慧城轨:城轨为“体” 智慧为“用”

热门文章

  1. Edsger Dijkstra经典言论 (ZT)
  2. PHP怎么做QQ个性标签,可爱简单的个性签名 qq标签大全
  3. 再见 Win10!下一代操作系统来了
  4. 鸿蒙系统2022年支持vr眼镜,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...
  5. Java 的这12个语法糖,有点甜
  6. 实习小白::(转) Cocos2d-x 3.0 开发(八)骨骼动画的动态换肤
  7. 月份加日期前面用on还是in_英语在日期之前加in 还是on 如何区分?
  8. 【数据结构】数据结构的诱惑之队列的秘密
  9. 网络不抖,创新才有!新华三用确定性网络铺就互联网的无限未来
  10. 在Alibaba成为优秀的技术主管,需要做到这三点