程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [C語言]1s內創建10G文件

[C語言]1s內創建10G文件

編輯:關於C語言

今天學長讓我幫他寫一個程序,1s內創建一個10 Gb的文件,(他是做大數據的)。我剛剛開始用一般的做法,那是相當浪費時間,後來從網上找了半天,看到了一個貌似很有希望的程序,但是我也不是很懂,這裡我只是給大家看看程序,我也不知道創建這麼大的文件有什麼用!

其實這裡就是區別fputc與fwrite這兩個函數,兩者所用時間有很大差別!

用fputc執行效果:(1G大概用了30s吧)

\

圖1 fputc執行效果

fwrite執行效果:

\

圖2 fwrite執行效果

可以看出,fwrite基本上是立即執行完!

 

#include 
#include 
#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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved