#include <stdio.h>
#include <stdlib.h>
//#include <regex.h>
char* file_name_1 = "D:\\testfile.txt";
char* file_name_2 = "D:\\testfile_1.cfg";
char* file_name_3 = "D:\\testfile_flag.txt"; #define ERROR -1
#define OK 0
int file_length(char* fileName)
{
FILE* fp;
int file_set_val,file_end_val;
fp = fopen(fileName, "r");
if(fp == NULL)
{
printf("read file fail\r\n");
return ERROR;
}
fseek(fp, , SEEK_SET);
file_set_val = ftell(fp);
fseek(fp, , SEEK_END);
file_end_val = ftell(fp);
printf("file length is %d. \r\nfile_set_val:%d file_end_val:%d \r\n", file_end_val-file_set_val,file_set_val, file_end_val);
return file_end_val-file_set_val;
} int read_file(char* fileName, char* content, int len)
{
FILE* fp;
fp = fopen(fileName, "r");
if(fp == NULL)
{
printf("read file fail\r\n");
return ERROR;
}
fread(content, len, , fp);
printf("read content is:%s\r\n", content);
return ;
} int back_para_increase(char* fileName, int flag)
{
FILE* fp;
fp = fopen(fileName, "ab");
if(fp == NULL)
{
printf("read file fail\r\n");
return ERROR;
}
if(flag)
{
fputc('', fp);
}
fclose(fp);
} int file_compare()
{
char* content_1;
char* content_2;
int len = , flag_val = ; len = file_length(file_name_1);
content_1 = (char*)malloc(len);
memset(content_1, , len);
read_file(file_name_1, content_1, len); len = file_length(file_name_2);
content_2 = (char*)malloc(len);
memset(content_2, , len);
read_file(file_name_2, content_2, len); if(strcmp(content_1, content_2))
{
back_para_increase(file_name_3,);
flag_val = file_length(file_name_3);
printf("back_para_increase:%d\r\n",flag_val);
}
free(content_1);
free(content_2);
} int main()
{
printf("***************************\r\n");
file_compare();
return ;
}

文件读取及比较&文件信息保存的更多相关文章

  1. 关于Npoi+excel文件读取,修改文件内容的处理方式

    因最近有需求场景,实现对文件的读写操作,又不单独生成新的文件,对于源文件的修改,做了一个简单实现,如下↓ // 要操作的excel文件路径 string fileName = Server.MapPa ...

  2. springboot的@Configuration文件读取static静态文件

    错误 正确

  3. LogcatHelperDemo【应用log信息保存成本地文件】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 简单记录下LogcatHelper的使用,并对原有代码进行了修改[因为保存到应用内的目录中不需要申请权限,所以去掉保存到SD的功能- ...

  4. HDFS数据流-剖析文件读取及写入

    HDFS数据流-剖析文件读取及写入 文件读取 1. 客户端通过调用FileSystem对象的open方法来打开希望读取的文件,对于HDFS来说,这个对象是分布式文件系统的一个实例.2. Distrib ...

  5. Matlab 从入门到精通 Chapter11 文件读取I/O

    11.1 工作空间数据读取 将工作空间的变量保存为文件,可以使用save命令.  save('filename') 将文件保存在当前目录下,文件名为filename.mat save('filenam ...

  6. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  7. VAuditDemo-任意文件读取

    任意文件读取是属于文件操作漏洞的一种. 一般任意文件读取漏洞可以读取配置信息.甚至系统重要文件. 严重的话,就可能导致SSRF,进而漫游内网. 文件操作漏洞 任意文件删除--删除lock 任意文件复制 ...

  8. PHP大文件读取操作

    简单的文件读取,一般我们会使用 file_get_contents() 这类方式来直接获取文件的内容.不过这种函数有个严重的问题是它会把文件一次性地加载到内存中,也就是说,它会受到内存的限制.因此,加 ...

  9. 编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...

随机推荐

  1. 【转载】Linux GCC常用命令

    作者:ggjucheng 出处:https://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html 1简介 2简单编译 2.1预处理 2 ...

  2. Delphi 程序调试

  3. 垃圾回收gc --翻译

    原文在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management.基本保持了平译,并在一些地方做了概念解释.(转 ...

  4. uestc summer training #1

    A 一个很好想的dp ll dp[maxn][]; int main() { scanf("%d%d",&n,&k); memset(dp,,sizeof(dp)) ...

  5. 最长回文子序列LCS,最长递增子序列LIS及相互联系

    最长公共子序列LCS Lintcode 77. 最长公共子序列 LCS问题是求两个字符串的最长公共子序列 \[ dp[i][j] = \left\{\begin{matrix} & max(d ...

  6. Kattis - itsamodmodmodmodworld It's a Mod, Mod, Mod, Mod World (类欧几里得)

    题意:计算$\sum\limits_{i=1}^n[(p{\cdot }i)\bmod{q}]$ 类欧模板题,首先作转化$\sum\limits_{i=1}^n[(p{\cdot}i)\bmod{q} ...

  7. restful api 相关

    404:资源没有找到400:参数错误 200:Get获取成功201:Post创建成功202:Put更新成功 401:未授权403:当前的资源禁止 500:服务器的未知错误 错误码 错误信息 当前url ...

  8. js 代码位置不同,导致随着点击函数执行次数累加

    每个人书写代码的习惯都不同吃,思想也都不一样,但在工作中为了减少工作量与时间,难免遇到要用别人写的代码.这次在使用同事的代码中,偶然发现的问题,因为js不好,所以一眼也没发现问题所在,查了查网上才知道 ...

  9. 5.反生成url

    # url(r"^all/(?P<article_type_id>\d+)$", home.index,name="index" ), # 在htm ...

  10. 24. ClustrixDB 持久性配置文件

    这些持久性选项不适用于内存中的表.有关更多信息,请参见内存表. ClustrixDB提供了一个选项,通过指定如何提交事务并使其持久,从而提高性能.当提交成功通知应用程序时,用户可以在提交过程中指定提交 ...