Linux c/c++之文件拷贝

  • Post author:
  • Post category:linux




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 版权协议,转载请附上原文出处链接和本声明。