【问题标题】:Is fgetpos/fsetpos any faster than fseek?fgetpos/fsetpos 比 fseek 快吗?
【发布时间】:2017-12-23 17:25:14
【问题描述】:

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

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

【问题讨论】:

  • 在哪个系统上?我的猜测是,在大多数或所有实现这些功能的系统上,差异(如果有的话)可以忽略不计。但要确定,您需要实际测量。或者,可以阅读源代码(如果有的话)。
  • 我在 Windows 上,但一个队友在 Unix 上,所以我正在寻找一般的东西。

标签: c fseek fgetpos


【解决方案1】:

fgetpos/fsetpos 比 fseek 快吗?

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

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

当编码 C99 以后,健壮的代码使用 fsetpos()/fgetpos() 代替较小的优化,使用更有限的 fseek()/ftell() 可能不存在。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2017-11-19
    • 2014-12-30
    • 1970-01-01
    • 2011-01-09
    • 2017-01-17
    相关资源
    最近更新 更多