C语言 read怎么知道它最后停在哪里?



弗雷德显然知道它最后停下来的地方,我的意思是:

while(fread(buffer, 1, 1, file))
{
…
}

下一次循环将在上次停止的地方继续。我假设它只是移动文件指针向前,但有人能解释一下,如果它完全是这样的吗?

函数fread从流中读取,不一定是文件。流也可以链接到控制台/终端。有些流是可搜索的,并且有文件位置指示器,有些则没有。链接到实际文件的流通常有一个文件位置指示器。

函数fread本身不推进任何文件位置指示器(它不调用fseek)。它只是从流中读取。

如果流具有文件位置指示符,则无论何时在流上发生读操作,运行时库都将推进文件位置指示符。它对流上的所有读都这样做,而不仅仅是对fread

最新更新