linux系统IO编程lseek函数和sync函数

lseek函数作用:设置文件读写位置

野火【第一期】Linux系列教学视频之“零基础入门”篇,手把手教学,从0开始,基于野火i.MX6ULL Pro/MINI开发板

第43讲 lseek和sync函数_哔哩哔哩_bilibili

函数原型:

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

参数含义:off_t offset偏移量,whence偏移量相对基准点,也就是说,最后文件的读写位置是偏移量+基准点

  • 若whence是SEEK_SET,基准点为文件开头
  • 若whence是SEEK_CUR,基准点为当前位置(即光标位置,,)
  • 若whence是SEEK_END,基准点为文件末尾

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <unistd.h>

#include <stdio.h>



int main()

{

        int fd = open("file",O_RDWR|O_CREAT,0666);

        //读写模式打开文件file,没有则创建,文件权限设置为可读可写

        write(fd,"123",3);//向其中写入3个字节的字符串123(不像上节那样要写buf)

        lseek(fd,100,SEEK_CUR);//让文件的读写位置往后偏移100字节

        write(fd,"123",3);//往偏移后的位置处写3个字节

        close(fd);

        return 0;

}     

打开file文件

123^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@123

可以看到确实是偏移了100字节

sync函数

用户空间的数据buff,通过页缓冲区,再写到磁盘的,等到页缓冲区满了后才会把数据写到磁盘,读也是如此,(页缓存区可以减少磁盘的读写速度,从而延长磁盘的使用寿命)

所以sync函数的作用就是把页缓冲区的数据立即写入磁盘。

使用方法是,在write()后写上sync(void);(其头文件也是#include <unistd.h>)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值