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 ネットビーンズでは、このステートメントの後の ftell(fp) は 1 になりますが、私の Windows ネットビーンズでは、このステートメントの後の ftell(fp) は 3585 です。
問題の原因は何ですか?