Seek 移动的是字节游标,不是“第几个字”

文件像一条有刻度的磁带。seek 只负责把读写头挪到新的字节偏移;下一次写入会从那里覆盖。换成中文后,这件事立刻多一层风险:一个汉字通常占三个 UTF-8 字节。

文件字节轨道

cursor = 0
Start(n)目标位置就是从文件开头数第 n 个字节;参数不能是负数。
Current(n)从当前游标前后移动,适合跳过字段或回退重读。
End(n)以文件末尾为基准;读尾部记录时通常传负数。
真实文件允许 seek 到 EOF 之后。 随后写入时,中间会形成空洞或零填充,具体存储方式取决于文件系统。本实验也会用 00 显示这段间隙。