C文件拷贝实例
使用的C语言的文件API。以参数传递要拷贝的文件以及目标文件。
#include <iostream>
#include <cstdio>
#include <ctime>
#include <cstdint>
using namespace std;
void printerror(const char *p){
if(!p)
return;
cout<<"================================!========================="<<endl;
cout<<"can't open "<<p<<endl;
cout<<"================================!========================="<<endl;
}
int file_copy(const char *arg1,const char *arg2){
int n=0;
char *buf=new char[1024];
FILE *fp1=fopen(arg1,"rb");
if(NULL==fp1){
printerror(arg1);
return -1;
}
FILE *fp2=fopen(arg2,"wb");
if(NULL==fp2){
printerror(arg2);
return -1;
}
cout<<"Start copy file "<<arg1<<endl;
time_t time_use=time(NULL);
while((n=fread(buf,sizeof(char),1024,fp1))){
fwrite(buf,sizeof(char),1024,fp2);
}
fclose(fp1);
fclose(fp2);
cout<<"time use:"<<(time(NULL)-time_use)<<"s"<<endl;
cout<<"file copy done"<<endl;
delete buf;
return 0;
}
int main(int argc ,char **argv)
{
if(argc<3){
cout<<"Usage:"<<argv[0]<<" "<<"argv[1] argv[2]"<<endl;
return -1;
}
return file_copy(argv[1],argv[2]);
}