在什么大小的文件seekg或tellg失败?

时间:2014-06-24 11:17:09

标签: c++ windows file file-io 64-bit

这是确定文件大小的众所周知的方法:

// Open file and get file size
int FileSize;
std::fstream myFile;
myFile.open(myFileName, std::ios::in|std::ios::binary);
if (myFile.is_open())
{
    myFile.seekg(0, std::ios::end);
    FileSize = myFile.tellg();
    myFile.seekg(0, std::ios::beg);
    myFile.close();
}

但我想知道程序失败的条件是什么? x32和x64窗口支持的最大文件大小是多少? 当我在x32上可以使用超过2Gb的文件?我需要将int64用于FileSize吗?

更新

根据this

  

ftell和fseek中带符号的32位整数偏移的限制是   2 ^ 31-1 = 2147483647,大约2GB。

0 个答案:

没有答案