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;
}

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐