lseek

lseek使用说明

表头文件

include<sys/types.h>

include<unistd.h>

定义函数
off_t lseek(int filde,off_t offset ,int whence);
文件指针会移动

SEEK_SET 将读写位置指向文件头后再增加offset个位移量。
SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END 将读写位置指向文件尾后再增加offset个位移量。
当whence 值为SEEK_CUR 或SEEK_END时,参数offet允许负值的出现。

下列是较特别的使用方式:

  1. 欲将读写位置移到文件开头时:
    lseek(int fildes,0,SEEK_SET);
  2. 欲将读写位置移到文件尾时:
    lseek(int fildes,0,SEEK_END);
  3. 想要取得目前文件位置时:
    lseek(int fildes,0,SEEK_CUR);

返回值
当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno 会存放错误代码。
可能设置erron的错误代码:
EBADF: fildes不是一个打开的文件描述符。
ESPIPE:文件描述符被分配到一个管道、套接字或FIFO。
EINVAL:whence取值不当。

posted @ 2020-02-19 12:04  friedCoder  阅读(186)  评论(0)    收藏  举报