文件定位

每一个打开的文件都有一个关联的“当前文件移位量”,它是一个非负整数,用来度量从文件开始处计算的字节数(一般读/写操作都是从当前文件移位量处开始的,并且使移位量增加所读写的字节数),系统默认打开一个文件时移位量被设置为0(没有指定O_APPEND的情况)

lseek函数(显式地定位一个打开文件),函数声明如下:

#incldue< sys/types.h>

#include<unistd.h>

off_t(int fd,off_t offset,int whence);


fd 已打开文件的描述符

offset 位移量的大小


whence取值

SEEK_SET 将位移量设置为距离文件开始处offset个字节

SEEK_CUR 将位移量设置为其当前值增加offset个字节(offest可取正负)

SEEK_END 将位移量设置为文件长度加offset个字节


/*测试标准输入能否被设置位移量*/

#include<sys/types.h>

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

int main(void)

{

if(lseek(0,0,SEEK_CUR)=-1)//判断标准文件能否被设置位移量

printf("cannot seek!\n");

else

printf("seek OK!\n");

exit(0);

}

你可能感兴趣的:(文件定位)