日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

fclose会写入硬盘吗 linux_Qt linux文件同步写入

發布時間:2024/10/12 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fclose会写入硬盘吗 linux_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);

}

總結

以上是生活随笔為你收集整理的fclose会写入硬盘吗 linux_Qt linux文件同步写入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。