首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ftello/fseeko vs fgetpos/fsetpos

ftello/fseeko vs fgetpos/fsetpos
EN

Stack Overflow用户
提问于 2012-08-25 04:23:45
回答 1查看 3.6K关注 0票数 14

ftello/fseekofgetpos/fsetpos有什么区别?两者似乎都是文件指针获取/设置函数,这些函数使用不透明的偏移类型,有时允许64位偏移。

它们是在不同的平台上支持还是以不同的标准支持?它所使用的偏移量的类型是否更灵活?

顺便说一句,我知道fgetpos/fsetpos和ftell/ftell之间的区别是什么?,但这是而不是。这个问题是关于ftello/fseeko的,这个问题的答案不适用于ftello/fseeko。

EN

Stack Overflow用户

回答已采纳

发布于 2012-08-25 04:33:39

有关差异的详细信息,请参见便携式定位。节选:

在某些系统中,文本流确实不同于二进制流,因此不可能将文本流的文件位置表示为文件开始时的字符计数。例如,某些系统上的文件位置必须同时编码文件中的记录偏移量和记录中的字符偏移量。 因此,如果希望程序可移植到这些系统,则必须遵守某些规则:

  • 从文本流上的far返回的值与到目前为止读取的字符数没有可预测的关系。唯一可以依赖的是,您可以随后使用它作为偏移量参数来搜索,或者使用fseeko将其移回相同的文件位置。
  • 在调用文本流上的fseeko或fseeko时,偏移量必须为零,或者偏移量必须为SEEK_SET,偏移量必须是先前对同一流调用ftell的结果。
  • 文本流的文件位置指示符的值是未定义的,而有些字符是用ungetc向后推回的,这些字符还没有被读取或丢弃。见未读。

简而言之: fgetpos/fsetpos使用更灵活的结构来存储关于文件位置状态的附加元数据,从而支持更大的可移植性(理论上)。

票数 11
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12119132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档