lseek函数会根据我们的需求对文件进行随机的读取
函数原型: off_t lseek(int fd,off_t offset,int whence);
其中第一个参数为要读取的文件的文件描述符
第二个参数是偏移的大小
第三个参数为从那个位置开始偏移 此处有三个可选项 分别为
SEEK_SET 从文件起始位置开始
SEEK_CUR 从当前位置开始偏移
SEEK_END 从文件尾开开始偏移
此函数有三个特别的使用方法 分别为
lseek(fd,0,SEEK_SET) 欲将文件读写位置移到文件开头使
lseek(fd,0,SEEK_CUR) 想要读取目前文件位置时
lseek(fd,0,SEEK_END) 欲将文件读写位置移到文件末尾时
函数调用成功时返回目前的读写位置(距离文件开头有多大) 错误返回-1 错误代码存在errno中
注意:1 在有些情况下,offset可以为负数,所以在检查是否出现错误时,不要判断小于0,最好判断
是否等于-1
2 文件的偏移长度可以大于当前文件的长度,在这种情况下,下一次对文件的写将加长该文件,
并在文件中构成一个空洞,中间没有被写入的字节都被读为0