文件指针

打开文件时,Windows 会将 文件指针 与默认流相关联。 此文件指针是一个 64 位偏移量值,用于指定要读取的下一个字节或接收写入的下一个字节的位置。 每次打开文件时,系统都会将文件指针放在文件开头,即偏移量零。 每个读取和写入操作都会按读取和写入的字节数来提升文件指针。 例如,如果文件指针位于文件的开头,并且请求了 5 个字节的读取操作,则文件指针将在读取操作后紧接在偏移量 5 处。 当读取或写入每个字节时,系统会推进文件指针。 还可以通过调用 SetFilePointer 函数来重新定位文件指针。

当文件指针到达文件末尾并且应用程序尝试从文件读取时,不会发生错误,但不会读取任何字节。 因此,在没有错误的情况下读取零个字节意味着应用程序已到达文件的末尾。 写入零个字节没有任何作用。

应用程序可以使用 SetEndOfFile 函数截断或扩展文件。 此函数将文件末尾设置为文件指针的当前位置。