Linux每次打开一个文件,就会保存一个指针来指向文件的当前位置
注意:这个指针是和文件描述符相挂钩的,并不与这个文件挂钩,所以可以有多个进程来对这个文件进行操作,不会影响各自。
当从文件读取数据时,内核从指针指向的位置开始,读取指定的字节数,然后移动指针,指向下一个未被读取过的字节,写文件的过程也是类似。
函数原型
off_t oldpos = lseek(int fd, off_t disk, int base);
参数说明
fd 是文件描述符,disk是相对于 base的偏移量,base 是个基准
返回值
返回 相对于文件开头的偏移量,也就是当前位置
如果遇到错误 那么返回-1
base
① SEEK_SET 0 文件开头
②SEEK_CUR 1 当前位置
③SEEK_END 2 文件结束