函数开启Linux之旅:学习lseek函数(lseeklinux)
随着Linux的火热,函数的熟悉也日益显得重要。在能够应用Linux的前提下,学习Linux中函数就摆在了我们的面前。
lseek函数是Linux中常用的文件操作函数,主要功能是用于改变文件描述符所指向文件中的读/写位置。它还被用来获取文件的长度。该函数的原型为:
#include
#include
off_t lseek(int fd, off_t offset, int whence);
* 参数fd:文件描述符
* 参数offset:指定文件读/写位置的偏移量
* 参数whence:指定位移原点,有如下三个选项
* SEEK_SET:文件开头;
* SEEK_CUR:当前文件指针位置;
* SEEK_END:文件结尾;
lseek函数用于改变文件描述符所指向文件中的读/写位置,且它还可以用来获取文件长度,使用它可以实现复制多份文件、查找文件字符串等功能,极大地丰富了我们对文件的操作,是POSIX.1提供的重要文件操作函数。下面的实例通过查询文件的大小,来使用lseek函数:
int main(int argc, char *argv[])
{ int fd;
off_t offset;
// 打开文件 if( ( fd = open("data.txt", O_RDONLY))
{ perror("open");
exit(-1); }
// 找到文件的大小
if( ( offset = lseek( fd, 0, SEEK_END ) ) {
perror("lseek"); exit(-1);
}
printf("the size of the file is %d\n", (int)offset);
close(fd);
return 0; }
从上面的代码可以看出,lseek函数返回值是文件的大小。当文件读/写位置改变时,lseek函数返回新位置的偏移量。
总而言之,lseek函数是一个非常重要的文件操作函数,它可以用于改变文件描述符所指向文件中的读/写位置,它还可以用来获取文件大小,从而丰富应用程序的功能和实现文件的更多操作。