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

Pra*_*tic 3 c c++ filesystems file-io c++-standard-library

怎么做fseek(myFILEptr, 0, SEEK_END)myifstream.seekg(0, std::ios::end)工作?

他们是否必须检查每个角色,并且他们的时间复杂度与文件的大小成线性关系?它比那更聪明吗?典型的文件系统提供哪些信息来处理?

哪些部分是由语言标准解决的,哪些不是?对于那些没有标准的部件,是否有事实上的标准?

我在这里将C和C++组合在一起,因为我希望每个人的答案几乎相同,甚至C++函数可以并且可能经常根据C函数实现.那是对的吗?

Oli*_*rth 5

在实践中,语言实现依赖于操作系统来处理(依赖于文件系统).例如,POSIX提供lseek系统调用.

因此,他们无法保证复杂性; 它们依赖于OS /硬件实现.

  • 他们也被允许失败,如果"文件"变成FIFO,他们可能会这样做. (2认同)