我在fclose上收到Aborted错误,想知道我在哪里做错了。核心Duped:
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 + Autotools。不明白这意味着什么。在此之后没有任何东西,因为程序必须退出,但显示Aborted是令人不安的..
答案 0 :(得分:4)
从fclose()
获取核心转储的一种标准方法是向其传递一个空的文件指针,因为您无法打开该文件:
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);
}