Bootstrap

Linux lseek函数使用

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)

;