C和c++标准库函数如何查找文件的末尾

How do C and C++ Standard Library functions find the end of a file?

本文关键字:查找 文件 c++ 标准 库函数 何查找      更新时间:2023-10-16

fseek(myFILEptr, 0, SEEK_END)myifstream.seekg(0, std::ios::end)如何工作?

他们是否必须检查每个字符,他们的时间复杂度是否与文件大小成线性关系?它比这更聪明吗?典型的文件系统提供了什么信息?

语言标准解决了其中的哪些部分,哪些没有?对于不在任何一个标准中的部分,是否存在事实上的标准?

我在这里把C和c++放在一起,因为我希望它们的答案几乎相同,甚至c++函数可以而且可能经常用C函数来实现。对吗?

在实践中,语言实现依赖于操作系统来处理这个问题(而操作系统又依赖于文件系统)。例如,POSIX提供lseek系统调用。

因此他们不能保证复杂性;它们依赖于操作系统/硬件实现。