lseek
函数原型:off_tlseek(int fd,off_t offset,intwhence);
功能:操作文件的偏移量
参数:
fd: 希望操作的文件的文件描述符
offset: 偏移量 整数---可以是正数看可以是负数可以是0
whence:移动偏移量的参照位置
SEEK_SET:文件的起始位置
SEEK_CUR:文件的当前位置
SEEK_END;文件的末尾位置
问题1:要求文件的偏移量设置为3位置lseek(fd,3,SEEK_SET)
问题2;要求将文件的偏移量设置为7位置 lseek(fd,2,SEEK_CUR)
lseek(fd,2,SEEK_SET)
问题3:要求将文件的偏移量设置为文件的首位置 lseek(fd,0,SEEKK_SET)
问题4:要求将文件的偏移量设置为文件的末尾位置 lseek(fd,0,SEEK_END)
返回值:
成功:返回偏移量之后的偏移量距离文件首位置的字节数
失败: 返回-1,并且将errno变量设置一个合适的值
附加:以为lseek返回值的特点,lseek可以用于计算文件长度
问题:如果我们这样写 lseek(fd,1000,SEEK_END)会怎样
解答:lseek额可以用于拓展文件大小,注意要想拓展文件大小,必须引起IO操作(就是lseek拓展后再文件结尾write一个字符),拓展出来的文件内的数据文件空洞(\0)