cp/tar/用c语言编写程序 实现cp命令的效果

时间:2021-10-01 16:18:42

1.cp (拷贝) 已存在文件路径  要拷贝的文件路径

实现cp命令的代码如下:

   #include <stdio.h>                                                          

   //因为要在命令中得到两个路径,所以要用到main函数的两个参数
int main(int argc,char **argv){ char buf[]={}; int size=;
/* int buf[100]={0} ; 代表数组里的单个存储区占四个字节。 如果我们从原始文件> 里拿出来的数据是3个字节,那么就放不进去*/
FILE * p_src=NULL,*p_dest=NULL; if (argc <){
printf("格式命令错误\n");
return ;
} //拷贝的思路1:把原文件读到内存中,然后在写入新文件中。原文件可能非常大。
//拷贝的思路2:蚂蚁搬家
p_src=fopen(*(argv+),"rb");
//argv 代表一个指针数组,
//指针数组里的第一个指针是./out文件,第二个指针是原始文件路径 //分支处理打开失败的情况
if(!p_src){
printf("原始文件打开失败\n");
return ;
} p_dest=fopen(*(argv+),"wb"); if(!p_dest){
printf("新文件打开失败\n");
fclose("p_src");
p_src=NULL;
return ;
} while(){
size=fread(buf,sizeof(char),,p_src);
if(!size){break;}
fwrite(buf,sizeof(char),size,p_dest);
}
//从原始文件里拿到多少个数据,就写多少个数据。
fclose("p_dest");
p_dest=NULL; fclose("p_src");
p_src=NULL; return ;
}

2.tar 命令

使用zcvf选项 打包 (把多个文件打包成一个压缩文件)。

使用zxvf选项 恢复 (把一个大包压缩好的文件内容恢复成普通文件)。

错误订正:代码第22行 应该为./a.out 文件