在Windows上对4 GB文件调用stat()时出现未知错误

时间:2013-03-17 20:43:02

标签: c windows-8 32-bit stat

我在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

2 个答案:

答案 0 :(得分:4)

stat函数返回一个stat结构,它定义了32位的文件大小,这意味着它可以正确处理最大4GB的文件大小。您应该使用stat64

另请参阅stat function family on MSDN

答案 1 :(得分:0)

NTFS确实支持4GB以上的文件,你正在考虑fat32的限制......所以不是吗^ _ ^