根据这个维基百科页面,Win10 上单个文件的大小在使用 NTFS 时可以达到约 8 PB。然而结构 Stat 被定义为
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;
};
Run Code Online (Sandbox Code Playgroud)
其中 off_t 是定义为 long 的类型。这意味着大约 4 GB 的限制。根据这个 stackoverflow page,即使对于 32 位操作系统,文件的大小也可能比它大。
除非我弄错了什么,否则如何使用 struct stat 可靠地获取文件的大小。此外,如果文件大小超过 long 类型的限制会发生什么?