#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
void create(const char *name)
{
int i, j;
char buf[1024];
FILE *fp;
fp = fopen(name, "wb");
for(j = 0; j < 100 * 1024; j++)
{
for(i = 0; i < 1024; i++)
{
buf[i] = rand() & 0xFF;
}
fwrite(buf, 1024, 1, fp);
}
fclose(fp);
}
void overwrite(const char *name)
{
int i, j;
char buf[1024];
FILE *fp;
fpos_t pos;
fp = fopen(name, "r+b");
for(j = 0; j < 100 * 1024; j++)
{
fgetpos(fp, &pos);
fread(buf, 1024, 1, fp);
for(i = 0; i < 1024; i++)
{
buf[i] = buf[i] ^ 0xFF;
}
fsetpos(fp, &pos);
fwrite(buf, 1024, 1, fp);
}
fclose(fp);
}
int main(void)
{
char name[32];
int i, j;
DWORD dw1, dw2;
dw1 = GetTickCount();
for(j = 0; j < 1000; j++)
{
for(i = 0; i < 100; i++)
{
sprintf(name, "TEST%04d.tmp");
create(name);
}
for(i = 0; i < 100; i++)
{
sprintf(name, "TEST%04d.tmp");
overwrite(name);
}
}
dw2 = GetTickCount();
printf("%uミリ秒\n", (int)(dw2 - dw1));
return 0;
}