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

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

实现cp命令的代码如下:

  2 #include <stdio.h>                                                          
  3 
  4 //因为要在命令中得到两个路径,所以要用到main函数的两个参数
  5 int main(int argc,char **argv){
  6 
  7  char buf[100]={0};
  8 
  9 int size=0;
 10 /* int buf[100]={0} ; 代表数组里的单个存储区占四个字节。 如果我们从原始文件>    里拿出来的数据是3个字节,那么就放不进去*/
 11 FILE * p_src=NULL,*p_dest=NULL;
 12 
 13 if (argc <3){
 14         printf("格式命令错误\n");
 15         return 0;
 16 }
 17 
 18 //拷贝的思路1:把原文件读到内存中,然后在写入新文件中。原文件可能非常大。
 19 //拷贝的思路2:蚂蚁搬家
 20 p_src=fopen(*(argv+1),"rb");
 21  //argv 代表一个指针数组,
 22 //指针数组里的第一个指针是./out文件,第二个指针是原始文件路径  
 23 
 24 //分支处理打开失败的情况
 25 if(!p_src){
 26 printf("原始文件打开失败\n");
 27 return 0;
 28 } 
 29                                                                             
 30 p_dest=fopen(*(argv+2),"wb");
 31 
 32 if(!p_dest){
 33 printf("新文件打开失败\n");
 34 fclose("p_src");
 35 p_src=NULL;
 36 return 0;
 37 }
 38 
 39 while(1){
 40 size=fread(buf,sizeof(char),100,p_src);
 41 if(!size){break;}
 42 fwrite(buf,sizeof(char),size,p_dest);
 43 }
 44 //从原始文件里拿到多少个数据,就写多少个数据。
 45 fclose("p_dest");
 46 p_dest=NULL;
 47  
 48 fclose("p_src");
 49 p_src=NULL;
 50 
 51 
 52 return 0;
 53 }
View Code

2.tar 命令

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

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

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

猜你喜欢

转载自www.cnblogs.com/30ends/p/9270164.html