0

我正在编写一个 C 程序,它正在处理相当大的文件(~4MB .txt 文件)。该程序打开大文件并将其拆分为一堆小文件,然后测试每个小文件。我编写了一个函数,稍后打开这些文件,测试以确保复制了整个部分,如果该部分没有被有效复制,则返回 1(我遇到的另一个错误是有时它只复制前 2 个单词一节)。当我通过 koding.com(它使用 gcc 编译器)编译和运行我的程序时,它对所有测试文件都非常有效。但是,当我尝试通过终端在我的 MacBook 上本地运行它时(我运行 Lion,并在 Xcode 4.6.3 中包含 gcc 的版本),它给了我“分段错误:11”并退出,但只有当我使用它在某些文件上(例如 3.

以下是该函数的调用方式:

for(i=1;tableArray[i].count!=0;i++)
{
    strcpy(word,tableArray[i].shortName);
    strcat(word,".txt");
    if(fopen(word, "r")!=NULL)
    {
        testFile = fopen(word, "r");
        problems[i] = checkFile(testFile);
        fclose(testFile);
    }

}

这是功能:

int checkFile(FILE *file)
{
    char word[NAMELEN];
    int count = 0;

    while(fscanf(file, "%s", word)!=EOF)
        count++;

    if(count<3)
        return(1);
    else return(0);
}

非常感谢任何见解。谢谢!

4

0 回答 0