今天学长让我帮他写一个程序,1s内创建一个10 Gb的文件,(他是做大数据的)。我刚刚开始用一般的做法,那是相当浪费时间,后来从网上找了半天,看到了一个貌似很有希望的程序,但是我也不是很懂,这里我只是给大家看看程序,我也不知道创建这么大的文件有什么用!
其实这里就是区别fputc与fwrite这两个函数,两者所用时间有很大差别!
用fputc执行效果:(1G大概用了30s吧)

图1 fputc执行效果
fwrite执行效果:

图2 fwrite执行效果
可以看出,fwrite基本上是立即执行完!
#include
#include <
windows.h>
#include
#include
#pragma comment( lib,"winmm.lib" ) void main() { unsigned long i, block,filesize; char type; FILE *fd; char filename[64]; fpos_t pos; DWORD s_time,p_time; printf("Input your file name:"); scanf("%s",filename); fd = fopen(filename,"wb+"); if(fd == NULL) { perror("Create file Fail:"); return ; } setsize: printf("Input file size:"); scanf("%d%c",&filesize,&type); s_time = clock(); fgetpos (fd,&pos); switch(type) { case 'K': case 'k':block = 0x400; break; case 'M': case 'm':block = 0x100000;break; case 'G': case 'g': block = 0x40000000; for(i=0; i