处理当前偏移
读和写操作可以顺序地访问文件,因为文件的当前 I/O 偏移跟踪之前每个操作的字节偏移。 偏移存储在系统文件表中。
使用 lseek 子例程,您可以调整可以随机访问的文件(例如常规和特殊类型文件)的偏移。
| 子例程 | 描述 |
|---|---|
| lseek | 允许进程将偏移定位在指定的字节处。 lseek 子例程将指针定位在由 Offset 变量指定的字节处。 Offset
值可以从文件中的以下位置(由 Whence 变量值指定)计算得出:
|
lseek 子例程的返回值是文件中指针位置的当前值。 例如:
cur_off= lseek(fd, 0, SEEK_CUR);lseek 子例程在文件表中实现。 所有并发的读和写操作使用偏移的新位置作为它们的起始位置。
注: 不能在管道或套接字类型文件上更改偏移量。
| 子例程 | 描述 |
|---|---|
| fclear | 在文件中创建空白空间的子例程。 它设为,将在以当前偏移开始 NumberOfBytes 变量中指定的字节数归零。 如果在打开文件时设置了 O_DEFER 标记,那么无法使用 fclear 子例程。 |