ファイルで seekg & tellg を使用するシナリオでは、フードの下で何が起こっているのだろうか?
// 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:シークは、特別な「EOF 文字」が見つかるまで、実際にファイルの内容全体を調べますか? それとも、ファイルシステムによって提供される他の情報を使用して、ファイルの終わりがどこにあるかを「知る」のですか?
Q2: seek はストリーム シーク操作です。これは、ファイルの内容全体がストリームを通過する必要があるということですか?
これがどのように機能するかについての基本的な理解しかない場合は、ご容赦ください。