Linux c/c++之文件拷贝

Linux c/c++之文件拷贝

命令方式进行文件拷贝

#直接使用system()函数通过命令的方式拷贝文件
#cp  路径+旧文件名  路径+新文件名
//文件拷贝(直接使用命令方式拷贝)
#include 
#include 

int main(int argc,char* argv[]){
	char buff[256] = {0};
	sprintf(buff,"cp %s %s",argv[1],argv[2]);
	system(buff);
	
	return 0;
}

Linux c/c++之文件拷贝_第1张图片
Linux c/c++之文件拷贝_第2张图片

文件操作方式进行文件拷贝

使用读写文件的方式将文件拷贝到指定位置

//文件拷贝(以文件操作的方式拷贝)
#include 
#include 
#include 
#include 

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

Linux c/c++之文件拷贝_第3张图片

你可能感兴趣的:(Linux,c语言,linux,ubuntu)