Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ubuntu18.04和QT Creator以及C++; 胡:我正在用C++语言开发QT Creator的Ubuntu应用程序,当系统突然关闭时,我遇到了一个问题。我经常修改一些文件,当我的系统关闭时,不会保存最后的更改,但会在最后一行添加几个“0”字符。我总是刷新并关闭文件,但无论如何我都有问题_C++_Qt_File_Ubuntu_System Shutdown - Fatal编程技术网

使用Ubuntu18.04和QT Creator以及C++; 胡:我正在用C++语言开发QT Creator的Ubuntu应用程序,当系统突然关闭时,我遇到了一个问题。我经常修改一些文件,当我的系统关闭时,不会保存最后的更改,但会在最后一行添加几个“0”字符。我总是刷新并关闭文件,但无论如何我都有问题

使用Ubuntu18.04和QT Creator以及C++; 胡:我正在用C++语言开发QT Creator的Ubuntu应用程序,当系统突然关闭时,我遇到了一个问题。我经常修改一些文件,当我的系统关闭时,不会保存最后的更改,但会在最后一行添加几个“0”字符。我总是刷新并关闭文件,但无论如何我都有问题,c++,qt,file,ubuntu,system-shutdown,C++,Qt,File,Ubuntu,System Shutdown,有人能帮我吗 这是我的代码: AddItemLog(unsigned char Index,QString Cadena) { QFile File(FileNames[Index]); File.open(QIODevice::ReadWrite | QIODevice::Append); QTextStream Stream(&File); Stream << GetStringDate(false) << ": &

有人能帮我吗

这是我的代码:

AddItemLog(unsigned char Index,QString Cadena)
{
    QFile File(FileNames[Index]);
    File.open(QIODevice::ReadWrite | QIODevice::Append);
    QTextStream Stream(&File);

    Stream << GetStringDate(false) << ": " << Cadena.toUtf8() << endl;

    File.flush();
    File.close();
}
AddItemLog(无符号字符索引,QString-Cadena)
{
QFile文件(文件名[索引]);
open(QIODevice::ReadWrite | QIODevice::Append);
QTextStream流(&文件);

对文件的流刷新不能保证您的字节实际命中磁盘。您可能希望使用
Unbuffered
打开模式试试运气,或者在底层文件描述符上使用
fdatasync
。我使用了fdatasync函数,它可以工作。谢谢!