一起用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到这里函数写完了 文章也没有了,还想看就翻我的旧文吧。 觉得我文章还可以的可以关注,收藏,转发,评论。谢谢大家!


分享到:


相關文章: