终端中的分段错误但不在koding.com上

时间:2015-08-16 03:48:16

标签: c xcode gcc segmentation-fault koding

我正在编写一个C程序,它正在处理相当大的文件(~4MB .txt文件)。在测试每个小文件之前,程序打开大文件并将其拆分为一堆小文件。我写了一个函数,以后打开这些文件,测试以确保整个部分被复制,如果部分没有被有效复制,则返回1(我有一个不同的错误,有时它只复制一节的前两个字)。当我编译&通过koding.com(使用gcc编译器)运行我的程序,它适用于所有测试文件。但是,当我尝试通过终端在我的MacBook上本地运行它(我运行Lion,并在Xcode 4.6.3中包含gcc版本)时,它给了我"分段错误:11"并退出,但只有当我在某些文件上使用它时(例如3.9MB文件给出了段错误,但2.7MB文件没有)。

以下是调用函数的方法:

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);
}

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

0 个答案:

没有答案