我遇到了一个问题,ftell返回了不正确的值。我的代码在Linux上的NetBeans中运行时能够正确报告,但是完全相同的代码在Windows上的NetBeans(使用MinGW)中运行时却出现了错误。文件指针指向一个以BINARY_READ方式打开的文件。在我的Linux NetBeans中,运行子程序后,ftell报告的值为35。而在我的Windows NetBeans中,调用相同的子程序后, ftell的值为3621。我追踪了一下我的子程序,并发现以下语句似乎会引起问题:
if (((header_size = getc (fp)) == EOF) || (header_size == 0))
在我的Linux NetBeans中,执行完这个语句后,ftell(fp)的结果是1。但是在我的Windows NetBeans中,执行完这个语句后,ftell(fp)的结果是3585。
可能是什么问题导致的呢?