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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值