用c语言实现二进制文件的复制

用c语言实现二进制文件的复制,第1张

你这个太复杂了

我给你一个思路:

fp=fopen("0.exe","rb")

gp=fopen("1.exe","wb")

这句可以保段春留,作为第一步。

第二步:

将fp的文件指针移至末尾,用fseek

然后使用ftell(fp)

求出文件指针的便宜,实际上就是文件的大小

第三步:

rewind文件指针

malloc这么大携燃乱的buffer

第四步:

fread 读取文件内容

第五步:

fwrite想到第二个文件中

第六步:

关闭两个文件辩档

不应对非文本文件使用fgetc等易受干扰的函数,建议用fread,fwrite读写二敏郑进制文件唤衫

#include "stdio.h"

/* 保护硬盘,绝对不要一个字节一个字节复制 */

#define SIZEOFBUFFER 256*1024L /* 缓冲区大小,默认为256KB */和拿腔

long filesize(FILE *stream)

{

long curpos, length

curpos = ftell(stream)

fseek(stream, 0L, SEEK_END)

length = ftell(stream)

fseek(stream, curpos, SEEK_SET)

return length

}

int copyfile(const char* src,const char* dest)

{

FILE *fp1,*fp2

int fsize,factread

static unsigned char buffer[SIZEOFBUFFER]

fp1=fopen(src,"rb")

fp2=fopen(dest,"wb+")

if (!fp1 || !fp2) return 0

for (fsize=filesize(fp1)fsize>0fsize-=SIZEOFBUFFER)

{

factread=fread(buffer,1,SIZEOFBUFFER,fp1)

fwrite(buffer,factread,1,fp2)

}

fclose(fp1)

fclose(fp2)

return 1

}

int main()

{

copyfile("file1.txt","file2.txt")

return 0

}


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

原文地址: http://outofmemory.cn/tougao/8193835.html

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

发表评论

登录后才能评论

评论列表(0条)

保存