lseek
by
lseek 函数
移动文件读写位置(偏移指针)
函数原型:
off_t lseek(int fd, off_t offset, int whence)
参数:
-
fd:文件描述符(由 open() 返回)
-
offset:偏移量(可以是正数、0、负数)
-
whence:起始位置,三个选项:
- SEEK_SET:从文件开头开始偏移
- SEEK_CUR:从当前位置偏移
- SEEK_END:从文件末尾偏移
返回值:
- 成功:返回移动后的位置(偏移量),单位字节
- 失败:返回-1
从开头写入数据
int fd = open("file.txt", O_RDWR);
lseek(fd, 0, SEEK_SET); //移动文件指针到开头
write(fd, "ABC", 3); //从开头写入数据
获取文件大小
int fd = open("file.txt", O_RDONLY);
off_t size = lseek(fd, 0, SEEK_END); //从末尾偏移0,返回即是文件大小