• 締切済み

XP32bit コンソールでfstat

Windows XP SP3 32bit のコマンドプロンプトで、MinGWを使っています。 巨大なファイルを扱いたいのですが、statのst_sizeが標準ではint(32bit)で、fstatで4Gを超えるファイルサイズが取得できないため、_stati64と_fstat64()を使ったのですが、それでもst_sizeが32ビット分しか得られません。 これは、32ビットOSのコンソールの制限なのでしょうか? なんとか、64ビットのファイルサイズを取得できないでしょうか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

一応確認ですが, 「st_sizeが32ビット分しか得られません」ってのはどうやって気づいたんでしょうか?

KAZUMI2003
質問者

補足

(前略) struct _stati64 stbuf; (中略) で、 if(_fstat64(handl,&stbuf)==-1) error("File stat error"); printf("st_sizeのサイズは%d file size = %llu\n",sizeof(stbuf.st_size),(long long)stbuf.st_size); の表示結果が、 st_sizeのサイズは8 file size = 218025604 となり、この数値に0x100000000を加えた値が、実際のファイルサイズ、4,512,992,900 バイトなわけです。 よろしくお願い致します。

関連するQ&A

専門家に質問してみよう