2

NTFS パーティションに (正確に) 4 GB のファイルがあり、そのサイズを取得しようとするプログラムがありstat()ますが、常に失敗しますUnknown error(stat は -1 を返します)。

これは、NTFS が 4 GB のファイルをサポートしていないということですか? または、別の (Win32?) API を使用する必要がありますか?

編集:

  struct stat st;
  if (stat(path.c_str(), &st) == -1) {
    printf("stat: %s\n", strerror(errno));
  }

出力:

stat: Unknown error
4

2 に答える 2

4

このstat関数は、ファイル サイズを 32 ビットで定義する構造体を返しますstat。これは、最大 4 GB までのファイル サイズのみを正しく処理できることを意味します。を使用する必要がありますstat64

MSDN の stat 関数ファミリも参照してください。

于 2013-03-17T20:51:04.170 に答える
0

NTFS は 4GB を超えるファイルをサポートしますが、fat32 の制限について考えているので、そうではありません ^_^

于 2013-03-17T20:44:36.283 に答える