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

时间:2014-08-16 23:38:17

标签: c++ c file-io filesystems c++-standard-library

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

因此,他们不能对复杂性做出任何保证;他们依赖于OS /硬件实现。