Linux c/c++之文件拷贝
命令方式进行文件拷贝
#直接使用system()函数通过命令的方式拷贝文件
#cp 路径+旧文件名 路径+新文件名
//文件拷贝(直接使用命令方式拷贝)
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[]){
char buff[256] = {0};
sprintf(buff,"cp %s %s",argv[1],argv[2]);
system(buff);
return 0;
}
文件操作方式进行文件拷贝
使用读写文件的方式将文件拷贝到指定位置
//文件拷贝(以文件操作的方式拷贝)
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
int main(int argc,char* argv[]){
//打开文件
int fdStr = open(argv[1],O_RDONLY,0666); //原始文件
if(-1 == fdStr)
printf("文件打开失败:%m\n"),exit(-1);
printf("文件打开成功!\n");
int fdDst = open(argv[2],O_WRONLY | O_CREAT,0666); //目标文件
if(-1 == fdDst)
printf("文件创建失败:%m\n"),exit(-1);
printf("文件创建成功!\n");
//文件复制
int r;
char buff[1024] = {0};
while(1){
r = read(fdStr,buff,1024);
if(r > 0){
write(fdDst,buff,r);
}else{
break;
}
}
//文件关闭
close(fdStr);
close(fdDst);
return 0;
}
版权声明:本文为ShiXiAoLaNga原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。