一起用C語言來寫一個常用的函數

一起用C語言來寫一個常用的函數

複製是我們常用的功能,很多人一套ctrl+c ctrl+v已經用的如火純青,出神入化。

我們編程也同樣需要常用文件複製功能。

但是!

它不是自帶的,需要我們自己寫,但也好在十分簡單,所以大家不要擔心,跟著我寫起來。

首先我們來屢屢思路, 需要實現文件複製我們需要開闢一個緩衝區,不斷從原文件中讀取內容到緩衝區,每讀取完一次就將緩衝區中的內容寫入到新建的文件,直到把原文件的內容讀取完。

那麼這裡大家需要注意一點,一個重點,緩衝器要開闢多大? 嗯哼?

大了中複製較少的內容時,會浪費很多,也沒法明顯提高讀取速度。

小了會增加讀取次數。

那麼有沒有一箇中間數,這個是有的。那麼就是4k。關於為什麼是4k 這個涉及到內存就不多解釋了。

現在我們有了思路,下面開始寫函數。


int copyFile(char *fileRead, char *fileWrite){ FILE *fpRead; // 指向要複製的文件 FILE *fpWrite; // 指向複製後的文件 int bufferLen = 1024*4; // 緩衝區長度 char *buffer = (char*)malloc(bufferLen); // 開闢緩存 int readCount; // 實際讀取的字節數 if( (fpRead=fopen(fileRead, "rb")) == NULL || (fpWrite=fopen(fileWrite, "wb")) == NULL ){ printf("Cannot open file, press any key to exit!\n"); getch(); exit(1); } // 不斷從fileRead讀取內容,放在緩衝區,再將緩衝區的內容寫入fileWrite while( (readCount=fread(buffer, 1, bufferLen, fpRead)) > 0 ){ fwrite(buffer, readCount, 1, fpWrite); }

ok到這裡函數寫完了 文章也沒有了,還想看就翻我的舊文吧。 覺得我文章還可以的可以關注,收藏,轉發,評論。謝謝大家!


分享到:


相關文章: