lseek函数是用来移动文件读写指针的函数,其函数原型为:
off_t lseek(int fd, off_t offset, int whence);
其中,fd是文件描述符,offset是偏移量,whence是起始位置,可以是SEEK_SET(文件开始处)、SEEK_CUR(当前读写位置)或者SEEK_END(文件结束处)。函数返回值为新的读写指针位置,如果出错则返回-1。
下面是一些lseek函数的应用示例:
- 移动文件读写指针到文件开始处
lseek(fd, 0, SEEK_SET);
- 获取文件长度
off_t len = lseek(fd, 0, SEEK_END);
- 在文件末尾添加数据
lseek(fd, 0, SEEK_END);
write(fd, buf, len);
- 读取文件末尾的n个字节
off_t len = lseek(fd, 0, SEEK_END);
lseek(fd, -n, SEEK_END);
read(fd, buf, n);
总之,lseek函数是一个非常重要的文件操作函数,可以用来移动文件读写指针,实现文件的随机读写等操作。