Программа не работает для больших файлов на C

Я использую следующую программу на C для фильтрации файла журнала, содержащего около 200 000 строк. Но программа перестает отвечать примерно через 12000 строк. Какие-либо объяснения, почему это происходит, и какие-либо решения для этого? Код скомпилирован в GCC (windows).

PS: Код выполняется правильно и дает желаемый результат для небольших файлов.

#include<stdio.h>
#include<string.h>

int check(char *url)
{
    //some code to filter the data and return either 0 or 1 depending upon input
}

int main()
{
    FILE *fpi, *fpo;
    fpi=fopen("access.log","r");
    fpo=fopen("edited\\filter.txt","w");
    char date[11],time[9],ip[16],url[500],temp[3];
    while(!feof(fpi))
    {
        printf(".");
        fscanf(fpi," %s %s %s %s %s %s",date,time,temp,ip,temp,url);
        if(check(url)) 
            fprintf(fpo,"%s %s %s %s %s %s\n",date,time,temp,ip,temp,url);
    }
    fclose(fpi);
    fclose(fpo);
    printf("\n\n\nDONE! :)");
    return 0;
}
0
задан Chokho 6 November 2011 в 20:04
поделиться