C和c++标准库函数如何查找文件的末尾
How do C and C++ Standard Library functions find the end of a file?
fseek(myFILEptr, 0, SEEK_END)
和myifstream.seekg(0, std::ios::end)
如何工作?
他们是否必须检查每个字符,他们的时间复杂度是否与文件大小成线性关系?它比这更聪明吗?典型的文件系统提供了什么信息?
语言标准解决了其中的哪些部分,哪些没有?对于不在任何一个标准中的部分,是否存在事实上的标准?
我在这里把C和c++放在一起,因为我希望它们的答案几乎相同,甚至c++函数可以而且可能经常用C函数来实现。对吗?
在实践中,语言实现依赖于操作系统来处理这个问题(而操作系统又依赖于文件系统)。例如,POSIX提供lseek
系统调用。
因此他们不能保证复杂性;它们依赖于操作系统/硬件实现。
相关文章:
- 在C++中查找文件
- 在UNIX系统中使用DIR查找文件的字节大小
- 通过搜索硬盘驱动器查找文件目录
- 驱动器号上的查找文件失败,但在路径上传递
- 查找文件中的项目数.txt
- 如何使用c 在Windows中使用更改日记帐查找文件修改
- 如何使用C 在Windows中查找文件是否被修改
- 如何在 c++ 中查找文件指针位置
- 数据文件处理-查找文件中的字数
- 在C 中查找文件的平均薪水
- 比 stat() 在 DIR 中查找文件的更好方法
- C 字符串匹配和使用查找文件替换
- 无法打开或查找文件"afxwin.h",使用.dff(构建毁灭战士3源代码)进行修补
- 如何在不使用目录的情况下在磁盘上查找文件
- 如何避免 CFile查找文件扩展名超过三个字符的误报
- Qt无法在子项目中查找文件
- 查找文件时出现Visual Studio编译错误
- VS2010:设置可执行文件在哪个目录中查找文件
- 使用 C++ 查找文件中的所有重复模式
- 当 seekg 查找文件末尾时未设置故障位 (C++,Linux)