在使用seekg &對文件進行tellg的場景中,我想知道引擎蓋下發生了什麼?seekg如何查找文件的結尾?
// Open file and get file size
int myFileSize;
std::fstream myFile;
myFile.open(myFileName, std::ios::in|std::ios::binary);
if (myFile.is_open())
{
myFile.seekg(0, std::ios::end);
myFileSize = myFile.tellg();
myFile.seekg(0, std::ios::beg);
myFile.close();
}
Q1:是seekg實際上行走在文件的全部內容,直到它找到一些特殊的「EOF字符」?還是它使用文件系統提供的一些其他信息來「知道」文件末尾在哪裏?
Q2: seekg是一個尋求操作的流。這是否意味着文件的全部內容必須通過流?
請原諒我,如果我只有一個基本的瞭解這一切如何工作。
關於「EOF字符」:https://latedev.wordpress.com/2012/12/04/all-about-eof/ – delnan 2013-02-10 00:24:49