设为首页 加入收藏

TOP

[C语言]1s内创建10G文件
2014-11-23 21:33:55 来源: 作者: 【 】 浏览:21
Tags:语言 创建 10G 文件

今天学长让我帮他写一个程序,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
     
      

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇综合案例:输入一个整数判定是否.. 下一篇[C语言]程序执行时间测量

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: