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 文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM