linux系统编程(四):修改文件读取指针(lseek)

1、用户注销过程


用户注销过程总共包括4步:

1、打开utmp文件

2、在文件中找到你所在终端的登录记录

3、对当前记录做修改

4、关闭文件

但是,对于write或者read系统调用,都只能顺序读取,或者顺序写入,没有办法读出个一个数据,然后再回头修改它。

这时,我们需要使用lseek系统调用来改变当前打开文件的指针位置。指针是与文件描述符相关联的,而不是文件关联,所以如果同一个文件被2个程序打开,这时会有两个指针,两个程序的读取操作互不影响。

2、 系统调用lseek改变文件指针位置


系统调用lseek可以改变已打开文件的当前位置。

  lseek
目标 使指针指向文件中的指定位置
头文件

#include<sys/type.h>

#include<unistd.h>

函数原型 off_t oldpos = lseek(int fd, off_t dist, int base)
参数

fd        文件描述符

dist      移动的距离

base    SEEK_SET => 文件的开始

            SEEK_CUR => 当前位置

            SEEK_END => 文件结尾

返回值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值