歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言模擬Linux中的cat程序

幾乎可以肯定80%的程序員都用過cat程序,它是Linux中用來連接多個文件的命令,自己模擬寫這樣一個小程序,將會是一次不錯的學習,Cat支持有參數和無參數兩種方式,

如果沒有參數,將使用標准輸入和輸出實現,如果有參數將會把參數裡指定的文件鏈接並在標准顯示上顯示,那麼我第一步是做什麼呢?當然是實現從一個指定的輸入流讀取字符

顯示在指定的輸出流上,代碼大致如下:

  1. //從src中復制內容到dest  
  2. int  fileCopy(FILE *src,FILE *dest) 
  3.         int c; 
  4.  
  5.          while((c=getc(src))!=EOF) 
  6.                putc(c,dest);             
  7.          
  8.             return c; 

上面的代碼顯然不只能把內容復制到標准輸出,復制任何文件也是可以的,接下來的實現就比較簡單了:

  1. //main  
  2. int main(int argc,char *argv[]) 
  3.     printf("Ctrl+C exit\n"); 
  4.     if(argc==1) 
  5.     {//如果沒有參數,就從鍵盤獲取輸入並顯示在屏幕  
  6.          fileCopy(stdin,stdout);       
  7.     } else 
  8.     { 
  9.         char *input;//要連接的文件   
  10.         FILE *inf;  //要連接的文件   
  11.         int  count = 0;//連接成功個數   
  12.         while(--argc>0) 
  13.         { 
  14.              input = argv[argc];             
  15.              if((inf=fopen(input,"r"))==NULL) 
  16.               {//如果某個文件無法打開則跳過   
  17.                  printf("\ncan't open %s\n",input); 
  18.                  continue;                             
  19.               }   
  20.               count++; 
  21.               fileCopy(inf,stdout); 
  22.               fclose(inf); 
  23.          } 
  24.        printf("**Cat %d file**",count);   
  25.        getchar();   
  26.        return 0;   
  27.     } 

要運行這個Cat就再簡單不過了,直接Cat或者Cat  f1.c f2.o

感興趣的可以再這裡下載完整的程序。源碼下載:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/10月/26日/C語言模擬Linux中的cat程序

Copyright © Linux教程網 All Rights Reserved