近来需要测试网络的下载速率,自己搭了个服务器,好让客户端可以从服务器下载文件测试下载性能。需要准备些固定大小的文件,例如600k、4M等大小的文件。
思路很简单,C中一个 char
类型占 1 byte,所以我们可以根据我们的需要在一个txt文件中输入一定数量的char
字符来获得指定大小的文件。用输入的文件大小命名文件。
1 M = 1024 K = 1024 byte
#include <stdio.h>
#include <string.h>
int main(void)
{
int targetSize = 0; //size unit is byte
char targetSizeStr[10]; //size unit is K / M
printf("please enter the target size! size unit is K or M; you need to enter the unit and care the spelling of the unit\n");
scanf("%s",targetSizeStr);
FILE *file = fopen(targetSizeStr,"w+");
if(file == NULL)
{
printf("open error!\n");
return 0;
}
int length = strlen(targetSizeStr);
int i = 0,j = 10;
for (i = 0; i < length; i++)
{
if (targetSizeStr[i] == 'K')
{
targetSize *= 1024;
break;
}
if (targetSizeStr[i] == 'M')
{
targetSize *= (1024 * 1024);
break;
}
int number = targetSizeStr[i] - '0';
targetSize = targetSize * j + number;
}
for (i = 0; i < targetSize; i++)
{
fprintf(file,"%c",'0');
}
fclose(file);
return 0;
}