函数名:lseek
头文件:
函数原型: int lseek(int handle,long offset,long length);
功能:用于移动打开文件的指针
参数:int handle 为要移动文件指针的文件句柄
long offset 为要移动的偏移量
int fromwhere 为文件指针以什么方向计算偏移量。
有三个取值分别为:
SEEK_SET 文件的开头
SEEK_CUR 文件的当前位置
SEEK_END 文件的末尾
返回值:移动文件指针后的文件指针位置
程序例:创建文件,内容为I like www.dotcpp.com very much!//打开文件,跳过7个字节,取14个字符。
#include
#include
#include
int main(void){
int fd=open("D:\\a.txt",O_RDONLY);
if(fd==-1){
printf("can not open the file\n");
return 1;
}
int pos=tell(fd);
printf("before lseek function,current position: %ld\n",pos);
lseek(fd,7,SEEK_SET); //移动到以文件的开头偏移7个字节的位置
char buf[20]={"\n"};
read(fd,buf,14);
printf("the res is %s\n",buf);
pos=tell(fd);
printf("after lseek function,current position: %ld\n",pos);
close(fd);
return 0;
}
运行结果before lseek function,current position: 0
the res is www.dotcpp.com
after lseek function,current position: 21