歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言模擬Linux中的cat程序

C語言模擬Linux中的cat程序

日期:2017/3/1 10:08:06   编辑:Linux編程

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

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

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

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

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

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

要運行這個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