[ create a new paste ] login | about

Link: http://codepad.org/vplLwGWS    [ raw code | fork ]

C, pasted on Dec 27:
#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;
}


Create a new paste based on this one


Comments: