C-Fclose->;中止(堆芯转储)

C-Fclose->;中止(堆芯转储),c,gcc,cygwin,C,Gcc,Cygwin,我在fclose上遇到一个中止错误,我想知道我哪里做错了。核心复制: Stack trace: Frame Function Args 0022A698 7C802542 (00000758, 0000EA60, 000000A4, 0022A794) 0022A7B8 610DC559 (000007DD, 0000000A, 00000032, 0000000B) 0022A8A8 610D9913 (00000000, 7C801879, 0022FF44, 7C83

我在fclose上遇到一个中止错误,我想知道我哪里做错了。核心复制:

Stack trace:
Frame     Function  Args
0022A698  7C802542  (00000758, 0000EA60, 000000A4, 0022A794)
0022A7B8  610DC559  (000007DD, 0000000A, 00000032, 0000000B)
0022A8A8  610D9913  (00000000, 7C801879, 0022FF44, 7C839AC0)
0022A908  610D9DEE  (00000144, 00000000, 0022AC30, 00000006)
0022A9B8  610D9F40  (00000288, 00000006, 00000001, 200586E0)
0022A9D8  610D9F6C  (00000006, 00000006, 0022AA38, 610FCCE7)
0022AA08  610DA233  (7C809C1B, 00000744, 0022AA68, 610FCE07)
20038678  61110408  (61201C98, 00000000, 20010410, 00000001)
End of stack trace

我正在使用Cygwin+GCC+自动工具进行项目。我不明白那是什么意思。在这一点之后,什么都没有,因为程序必须退出,但显示中止是令人不安的

fclose()
获取核心转储的一种标准方法是向其传递一个为null的文件指针,因为您无法打开该文件:

 FILE *fp = fopen("/long/hairy/path/with/a/missing/file/at/the/end", "r");

 fclose(fp);
始终检查
fopen()
及其相关项的返回值:

if (fp == NULL)
    ...report problem
else
{
    ...use fp...
    fclose(fp);
}

fclose()
获取核心转储的一种标准方法是向其传递一个为null的文件指针,因为您无法打开该文件:

 FILE *fp = fopen("/long/hairy/path/with/a/missing/file/at/the/end", "r");

 fclose(fp);
始终检查
fopen()
及其相关项的返回值:

if (fp == NULL)
    ...report problem
else
{
    ...use fp...
    fclose(fp);
}

啊,好老的7C802542。(不,说真的,我们需要看一些代码:)如果您在同一个指针上多次调用fclose(),请检查您的代码。我确信只会调用一次100%确定啊,好旧的7C802542。(不,说真的,我们需要看一些代码:)如果要在同一个指针上多次调用fclose(),请检查您的代码我确信只调用一次100%确定