处理当前偏移

读和写操作可以顺序地访问文件,因为文件的当前 I/O 偏移跟踪之前每个操作的字节偏移。 偏移存储在系统文件表中。

使用 lseek 子例程,您可以调整可以随机访问的文件(例如常规和特殊类型文件)的偏移。

子例程 描述
lseek 允许进程将偏移定位在指定的字节处。 lseek 子例程将指针定位在由 Offset 变量指定的字节处。 Offset 值可以从文件中的以下位置(由 Whence 变量值指定)计算得出:
绝对偏移
文件的开始字节
相对偏移
先去指针的位置
结尾相对偏移
文件的结尾
lseek 子例程的返回值是文件中指针位置的当前值。 例如:
cur_off= lseek(fd, 0, SEEK_CUR);

lseek 子例程在文件表中实现。 所有并发的读和写操作使用偏移的新位置作为它们的起始位置。

注: 不能在管道或套接字类型文件上更改偏移量。
子例程 描述
fclear 在文件中创建空白空间的子例程。 它设为,将在以当前偏移开始 NumberOfBytes 变量中指定的字节数归零。 如果在打开文件时设置了 O_DEFER 标记,那么无法使用 fclear 子例程。