关于Qt QFileDevice::map()接口的一些学习记录

在开发一个日记程序时,使用Qt的QFileDevice::map()接口遇到了问题。该接口用于文件映射,但新建或内容为空的文件无法成功映射。map()从指定偏移量开始映射指定大小的数据到内存,但无法实现文件自增长。为使映射成功,需预先写入数据或设定文件大小。目前寻求更合适的日志功能实现方案。
摘要由CSDN通过智能技术生成

最近在做一个类似于写日记的程序,想法是左边一列tableview用来显示所打开的文件夹下的日志文件

右边一个textEdit用来显示单击日志条目时显示对应日志文件,另外可以保存所有日志文件显示时的状态。

最开始想的是通过map接口来进行文件映射(对文件映射不熟悉所以使用它)

 

在建立关联文件映射的时候,发现如果是新建文件,则映射建立失败

如果是旧文件但如果文件中无内容,也会失败

 

经过测试和排查,发现接口

uchar *QFileDevice::map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions)

 map的意思就是将文件从offset位置开始,到size字节的数据映射到内存中(但是size的大小也没有规定诶)

当时想的是,对内存映射进行修改然后文件也会对应修改,就比较爽了赛。

结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值