- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我了解 ftell() 和 fseek() 在 C 中的工作原理,但是对于这个问题,我在任何地方都找不到任何准确的答案,包括 StackOverflow 上最近的帖子(LINK)。
那么请您回答以下问题:
The function fills the fpos_t object pointed by pos with the information needed from the stream's position indicator to restore the stream to its current position
最佳答案
fgetpos()
和 fsetpos()
与文本和二进制模式相关。
fgetpos()
的优点是保留了流中的完整位置,包括其内部的状态,以便以后可以恢复。无论您是否处于文本模式,这都有效。如果您使用 wide oriented streams,这一点尤其重要。或混合 fgetc()
和 fgetwc()
在同一个文件中,因为某些语言环境使用状态相关的多字节编码(状态取决于先前的读取)。
fseek()
ftell()
也可以使用文本和二进制模式。然而,文本模式有一个重要的限制:你应该只使用 fseek()
和 0 或以前由 ftell()
返回的值(在二进制模式下你可以使用任何你想要的值(value))。这是因为文本模式读取可以改变读取返回的字节数与文件中的有效字节数相比(典型示例,Windows 文件中的 2 个 CR+LF 字节被转换为一个符号 LF 字节)。
由于 ftell()
只返回一个 long int
偏移量,因此如果需要,它无法跟踪多字节状态。所以使用 fseek()
可能会失去这种状态。
关于c - fgetpos() 和 fsetpos() 是否仅适用于文本模式?如果不是字节数,fpos_t 对象填充了哪些位置/偏移数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33318419/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
在 fopen 的 C 标准中,关于以更新模式打开的文件 (C11 7.21.5.3/7),输出后跟输入需要对 fflush 或文件定位函数(fseek、fsetpos 或 rewind)的中间调用。
我的问题是我无法落后。两个函数似乎最让我困惑,如果可能是我忽略的一件小事,但从我的结果来看,我只是没有看到它。 还有其他和我类似的问题。 Jet 我选择提出这个问题是因为我认为这可能会导致其他两个问题
ftello/fseeko 和fgetpos/fsetpos 有什么区别?两者似乎都是文件指针获取/设置函数,它们使用不透明的偏移类型有时允许 64 位偏移。 它们是否受不同平台或不同标准的支持?它使
使用函数 fgetpos() 和 fsetpos() 与使用函数 ftell() 和 fseek 有什么区别() 获取和设置文件中的位置? fgetpos() 和 fsetpos() 有什么用?为什么
我了解 ftell() 和 fseek() 在 C 中的工作原理,但是对于这个问题,我在任何地方都找不到任何准确的答案,包括 StackOverflow 上最近的帖子(LINK)。 那么请您回答以下问
哈!!我该如何把整个事情放在一个清晰的问题中!!让我试试: 我知道使用fopen()打开的文件被缓冲到内存中。我们使用缓冲区来提高效率和方便性。在从文件读取期间,文件的内容首先被读取到缓冲区,然后我们
虽然我知道 fpos_t 是一种不透明类型,旨在由 fgetpos() 函数初始化,C99 rationale 的 §7.19.9.1|指出: fgetpos and fsetpos were add
我是一名优秀的程序员,十分优秀!