我给你一个思路:
fp=fopen("0.exe","rb")
gp=fopen("1.exe","wb")
这句可以保段春留,作为第一步。
第二步:
然后使用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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)