c - fgetpos/fsetpos 比 fseek 快吗?

标签 c fseek fgetpos

我知道 fgetpos/fsetpos 用于返回文件位置。

但是,如果我首先使用 fseek 访问该位置,那么使用 fgetpos/fsetpos 稍后返回会更有效,还是再次使用相同的 fseek 更有效?

最佳答案

Is fgetpos/fsetpos any faster than fseek?

对于一般文件定位,fseek()/ftell() 仅限于 LONG_MAX 左右的文件大小。 fsetpos()/fgetpos() 旨在处理文件系统的文件大小。

对于大文件,fseek()/ftell() 不是一个选项。 @Thomas Padron-McCarthy

当编码 C99 及以上版本时,稳健的代码使用 fsetpos()/fgetpos() 来代替较小的优化,而使用更有限的 fseek()/ftell 可能不会出现这种优化().

关于c - fgetpos/fsetpos 比 fseek 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954500/

相关文章:

c++ - 确定大于 4GB 的文件的大小

c - 为什么我的 fputc/fwrite 一直以十六进制打印以及如何打印到文件的中间?

c - fgetpos() 和 fsetpos() 是否仅适用于文本模式?如果不是字节数,fpos_t 对象填充了哪些位置/偏移数据?

c - 以下 C 代码的输出是 T T ,为什么不是 t t?

c - 文件部分用c发送

c - 结构的字符串元素不保留分配的值

c - 在 Linux 上使用默认查看器打开文件

python - Python 中 f.seek() 的复杂性

c - 打开 bundle 中的文件时,fgetpos 在 iOS 6.1 模拟器中失败

c++ - `fgetpos` 没有返回正确的位置