質問: windowsプラットフォームでの最大ファイルサイズ このウィキペディアのページ によると、win10の個々のファイルのサイズはntfsで最大約8pbになる可能性があります。しかし、構造体統計は次のように定義されていますstruct stat { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; _off_t st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; ここで、off_tはlongとして定義されたタイプです。これは、約4gbの制限を意味します。 このstackoverflowページ によると、32ビットosの場合でも、ファイルのサイズはそれより大きくなる可能性があります。何かを間違えない限り、structstatを使用してファイルのサイズを確実に取得するにはどうすればよいですか。さらに、ファイルサイズがlong型の制限を超えるとどうなりますか?
回答: stat関数 の64ビットバージョンを使用する必要があります。stat.hインクルードファイルの__stat64構造:struct _stat64 { _dev_t st_dev; _ino_t st_ino; unsigned short st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; __int64 st_size; __time64_t st_atime; __time64_t st_mtime; __time64_t st_ctime; }; ここで、st_sizeは__int64であり、これは32ビットではなく64ビットです。