c语言如何判断一个文件是否被修改

c语言如何判断一个文件是否被修改,第1张

可以用 文件状态 ,例如 文件建立时间,文件最歼昌后一次修改时间,文件最后一次被访问的时间,做判断。

获取文件状态用:

#include <io.h>

int get_namein_time(char *namein, char * ftime){

struct _finddata_t fileinfo

int res,DEBUG=0,flag=0

if ( (res = _findfirst(namein, &fileinfo)) == -1){

if (DEBUG==1) printf("get file info error !\n")

return 0

}

if ( strcmp(namein,fileinfo.name)==0 ) {

flag=1goto Lab

}

do {

if ( strcmp(namein,fileinfo.name)==0 ) {flag=1goto Lab}

} while ( _findnext(res, &fileinfo) ==0)

Lab: strcpy(ftime,ctime(&fileinfo.time_write))

_findclose(res)

return flag

}

最可靠的是用文件的哈希氏团扒码判断,就是区块链中用的方法。

例如视窗系统,调用系统 Certutil 计算出 文件的 哈希码,与文件原来的码或指对比。若变了,就是被修改了。

Certutil -hashfile abc.txt MD5 这个检查 文件 abc.txt

Certutil -hashfile XYZ.txt SHA512 这个检查 文件 XYZ.txt

.c是执行文件。C语言源程序后饥运缀为.c ,在windows平台上,编译后的后缀为.obj,连接后的后缀为.exe。在Linux平台上,预处理后的文件扩展名一般为.i,C语言编译器编译后的文件扩展名一般为.S,是一个汇编代码文件,汇编器编译后的文件扩展一般为.o,链接器生成的可执行文件默认为.out。

.C语言执行过程生成的三种文件和扩展名

源代码文件.c。目标代码文件.obj。可执行文件:.exe,.c文件compile后生成.obj文件,.obj文件link后生成.exe文件。你用微软的Visual C++ 6.0时,在下方的状态输出窗口,你可以看到compiling然后是linking。

.c是执行文件判决书已生效,是执行的文件,也是执行的依据,按判决书确定的义务执行没有错,这种执行文件的权利,只能有法院执行人员去完成,其他人不能去执行,他没有执行的责任,执行的任务法律贼予法院执行人员困肢腔,执行人员必汪衫须完成这个任务。

fp=fopen(filename,"慎禅粗w")

if(fp==NULL)

{

printf("Can not open file!"宽镇)

return

}

请采袭知纳,谢谢


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/tougao/12329329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存