Qt linux文件同步写入
因为linux 系统机制问题,文件的创建和写入并不会直接写入硬盘。而是先写入缓存,当系统要关闭或须要时才写入硬盘。为防止突然掉电,应将缓存中的文件及时同步到硬盘上去。
linux 下的sync 命令具有数据同步功能。我们能够在Qt程序中调用该命令。
附:sync 命令说明
sync命令 linux同步数据命令
格式: sync
用途:更新 i-node 表,并将缓冲文件写到硬盘中。
功能:sync命令是在关闭Linux系统时使用的。 用户须要注意的是,不能用简单的关闭电源的方法关闭系统,由于Linux象其它Unix系统一样。在内存中缓存了很多数据,在关闭系统时须要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,仅仅有这样才干确保数据不会丢失。一般正常的关闭系统的过程是自己主动进行这些工作的,在系统执行过程中也会定时做这些工作。不须要用户干预。 sync命令是强制把内存中的数据写回硬盘,以免数据的丢失。
用户能够在须要的时候使用此命令。
sync 命令执行 sync 子例程。假设必须停止系统,则执行 sync 命令以确保文件系统的完整性。
sync 命令将全部未写的系统缓冲区写到磁盘中。包括已改动的 i-node、已延迟的块 I/O 和读写映射文件。
程序源代码:
使用Qt自带类QSettings
//保存
void MainWindow::on_pushButton_clicked()
{
QString string="中华人民共和国 hello world! ";
QSettings setting("/mnt/nand1-2/dd/config.ini",QSettings::IniFormat);//生成配置文件
setting.beginGroup("config");//beginGroup与以下endGroup 相相应,“config”是标记
setting.setValue("page",QVariant(string));
setting.setValue("site",QVariant("http://www.cppblog.com/gaimor/"));
setting.setValue("maker",QVariant("Gaimor"));
setting.endGroup();
//强制将内存数据写入硬盘
system("sync");
//清空
ui->lineEdit->clear();
} //读配置文件
QSettings setting("/mnt/nand1-2/dd/config.ini",QSettings::IniFormat);//读配置文件
setting.beginGroup("config");
QString page=setting.value("page").toString();
ui->plainTextEdit->appendPlainText(page);
使用C库实现
//C函数库
void MainWindow::on_pushButton_5_clicked()
{
FILE *fd;
FILE *fd1;
char str[LENGTH];
fd = fopen("/mnt/nand1-2/dd/file.txt", "w+");
/* 创建并打开文件 */
if (fd)
{
fputs("Hello, create file success!", fd);
/* 写入Hello, software weekly字符串 */
fclose(fd);
}
//强制将内存数据写入硬盘
system("sync");
fd1 = fopen("/mnt/nand1-2/dd/file.txt", "r");
fgets(str, LENGTH, fd1);
/* 读取文件内容 */
ui->textBrowser->insertPlainText(str);
printf("%s\n", str);
fclose(fd1);
}
Qt linux文件同步写入的更多相关文章
- 烂泥:linux文件同步之rsync学习(一)
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsy ...
- Linux文件同步
简介 文件实时同步对于运维是个很常见的需求. 如集群的机器,需要上传个文件,之前的步骤是每台服务器分别上传. 做文件同步以后,只上传一台,其他机器自动同步. 目前实现实时同步的主流方案有 rsync+ ...
- Linux文件同步工具之rsync
学习背景 1.最近公司的项目在使用jenkins做自动化构建,因为jenkins在构建时是比较耗性能的,便单独使用了一台服务器做构建服务器.但是个人觉得这样成本过高,单独拿一台服务器来构建并且该服务器 ...
- linux 文件同步
ref: https://www.cnblogs.com/MacoLee/p/5633650.html https://wenda.so.com/q/1505308236213470 http://b ...
- Linux 文件缓存 (一)
缓存印象 缓存给人的感觉就是可以提高程序运行速度,比如在桌面环境中,第一次打开一个大型程序可能需要10秒,但是关闭程序后再次打开可能只需5秒了.这是因为运行程序需要的代码.数据文件在操作系统中得到了缓 ...
- linux服务器之间的文件同步;rsync+inotifywait;同步多个目录
1.双向同步:unison+inotify 2.单向同步:rsync+inotify python版的pyinotify 本文介绍第二种方法: 1.Inotify 是一个 Linux特性,它监控文件系 ...
- 负载均衡配置下的不同服务器【Linux】文件同步问题
负载均衡配置下的不同服务器[Linux]文件同步问题2017年04月13日 22:04:28 守望dfdfdf 阅读数:2468 标签: linux负载均衡服务器 更多个人分类: 工作 问题编辑版权声 ...
- 【转帖】Linux上搭建Samba,实现windows与Linux文件数据同步
Linux上搭建Samba,实现windows与Linux文件数据同步 2018年06月09日 :: m_nanle_xiaobudiu 阅读数 15812更多 分类专栏: Linux Samba 版 ...
- Linux下利用rsync实现多服务器文件同步
windows做为文件服务器,使用rsync的windows服务版本,然后配置好就可以了.需要的朋友可以参考下. windows做为文件服务器,使用rsync的windows服务版本:cwRsyncS ...
随机推荐
- Hibernate框架的主键生成策略
在Hibernate中,id元素的<generator>子元素用于生成持久化类的对象的唯一标识符,也就是主键.Hibernate框架中定义了许多主键生成策略类,也叫生成器类.所有的生成器类 ...
- 高精度&&FFT
ACM-高精度模板(综合篇) 时间:-- :: 阅读: 评论: 收藏: [点我收藏+] 标签:高精度 在这里,我们约定,能用int表示的数据视为单精度,否则为高精度.所有函数的设计均采用带返回值的形式 ...
- hdu6073[dfs+删边] 2017多校4
题目中对二分图的定义十分特殊, 指的是 U,V两部分中,U的顶点度数必定为2,V中顶点无限制. 题目要求的是 对于所有匹配,该匹配的权值=该匹配中选中的边的边权的乘积,求所有匹配权值之和. 对于V中的 ...
- Spark与Pandas中DataFrame对比(详细)
Pandas Spark 工作方式 单机single machine tool,没有并行机制parallelism不支持Hadoop,处理大量数据有瓶颈 分布式并行计算框架,内建并行机制paral ...
- 【Openjudge】岛屿(并查集)
题目链接 此题是并查集.考虑到水位不断上涨,所以将时间倒转.先统计最后一天的联通块个数,每一天浮出水面的块进行计算.复杂度O(玄学). 代码如下 #include<cstdio> #inc ...
- 转载:CMarkUp使用简介
转载地址:http://blog.csdn.net/jonathandj/article/details/4320725 最近正在研究C++下的XML分析工具CMarkup.初次和XML相遇是基于C# ...
- 作诗(bzoj 2821)
Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一篇长度为N的文章,阅读M次 ...
- angular中事件戳转日期的格式
本地化日期格式化: ({{ today | date:'medium' }})Nov 19, 2015 3:57:48 PM ({{ today | date:'short' }})11/19/15 ...
- 批处理BAT替换与截取字符串的用法t1=%a:~3%是什么意思
在bat编写中,我们经常越到t1=%a:~3%之类的代码,这里简单介绍下用法,需要的朋友可以参考下: 一.替换用法 例 @echo off set a=belcome to CMD borld! ...
- Day 5 Linux之用户、群组和权限
Linux之用户.群组和权限 一.各文件及内容对应含义 1./etc/passwd文件 功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 含义:如下图所示. 2./et ...