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);
}
时间: 07-15

Qt linux文件同步写入的相关文章

linux 文件同步 rsync+crontab

Linux文件同步:主要使用rsync与crontab结合的方式同步 主机IP:172.22.3.181 备机IP:172.22.3.182   配置操作步骤: 一.安装rsync 二.配置rsyncd.conf 与密码文件(两个步骤1和2) 三.备份脚本 一.安装rsync 备机 1.服务器是否安装rsync Shell代码   rpm -qa|grep –i rsync 若有显示,说明已安装,则跳过2  2.安装rsync软件 有两种安装方式: a.利用 yum 安装 Shell代码   1

Linux文件同步工具-rsync

Linux文件同步工具-rsync 安装包 yum install -y rsync rsync常用选项 -a:归档模式,表示递归方式传输文件,并保持所有属性:通-rlptgoD:-r:同步目录时要加上,类似cp时加R:-v:同步时显示一些信息,让我们知道同步国创:-l:保留软链接:-L:同步软链接时会把源文件给同步:-p:保持文件权限属性:-o:保持文件的属主:-g:保持文件的属组:-D:保持设备文件信息:-t:保持文件的时间属性:--delte:删除DEST中SRC没有的文件:--exclu

烂泥:linux文件同步之rsync学习(一)

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsync的工作原理 3. rsync优点 4. rsync认证方式 5. 安装rsync 6. rsync命令参数详解 7. 配置rsync 8. rsync的启动与关闭 9. rsync同步实例 说明:rsync服务器与客户端使用的OS均为:centos 6.5 64bit. 一.rsync是什么 在

linux 文件同步

最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式来完成的. 先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不

Rsync实现Windows系统与Linux文件同步

rsync是类Linux系统下的数据镜像备份工具(remote sync) .一款快速增量备份工具Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步. 1.安装配置Rsync软件(Linux系统服务端) [[email protected] ~]# yum install rsync -y[[email protected] ~]# vim /etc/rsyncd.conf uid=root                    --文件上传的所属用户gid=ro

linux文件同步+nginx负载均衡分流网站

1.主服务器安装rsync wget https://download.samba.org/pub/rsync/src/rsync-3.1.1.tar.gz tar -zxvf rsync-3.1.1.tar.gz ./configure --prefix=/usr/local/rsync make && make install cd /usr/local/rsync/ echo "密码" >/usr/local/rsync/rsync.passwd chmod

Linux 打开文件并写入一段字符串,同时读出对应文件的信息--fopen()/fwrite()/fread()

Linux 打开文件并写入一段字符串,同时读出对应文件的信息 在Linux中,采用C语言,使用fopen()函数打开一个文件(若不存在文件,则新建一个 如 data/test.dat),同时采用 fwrite()向其中写入相应的字符串,每次输入写入都换行,最后采用fread()读出相应的信息. 相应的代码如下:Test.c /* Test.c :create a file : Write a string to the file */ #include <stdio.h> #include &

Linux&&Windows文件同步简单配置[rsync]

1.Windows to Windows 1.1.所需软件:cwRsyncServer_4.1.0_Installer.zip 1.2.安装: 解压后,直接双击安装 此步骤为设置同步的帐户和密码,该步骤会在操作系统层面创建一个用户:SvcCWRSYNC.当然,我们也可以修改这个用户,自己设置密码,都可以. 但是Windows下面可以不设置,全部默认即可. 1.3.配置服务端 编辑文件:rsyncd.conf use chroot = false strict modes = false host

Linux 打开文件并写入一段字符串,同一时候读出相应文件的信息--fopen()/fwrite()/fread()

Linux 打开文件并写入一段字符串.同一时候读出相应文件的信息 在Linux中.採用C语言.使用fopen()函数打开一个文件(若不存在文件,则新建一个 如 data/test.dat),同一时候採用 fwrite()向当中写入对应的字符串,每次输入写入都换行,最后採用fread()读出对应的信息. 对应的代码例如以下:Test.c /* Test.c :create a file : Write a string to the file */ #include <stdio.h> #inc