QT 写的读写配置的程序,写INI文件重启后还原, 用VI打开后重启就不还原

#include "config.h"
#include
#include

Config::Config(QString qstrfilename)
{
if (qstrfilename.isEmpty())
{
m_qstrFileName ="Config.ini"; //QCoreApplication::applicationDirPath() + "/Config.ini";
}
else
{
m_qstrFileName = qstrfilename;
}

m_psetting = new QSettings(m_qstrFileName, QSettings::IniFormat);
qDebug() << m_qstrFileName;

}
Config::~Config()
{
delete m_psetting;
m_psetting = 0;
}
void Config::Set(QString qstrnodename,QString qstrkeyname,QVariant qvarvalue)
{
m_psetting->setValue(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname), qvarvalue);
m_psetting->sync();
// sync();

qDebug() << QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname)+ qvarvalue.toString();
}

QVariant Config::Get(QString qstrnodename,QString qstrkeyname)
{
QVariant qvar = m_psetting->value(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname));
return qvar;
}

用的是一个大神写的config.cpp ,

主函数 调用 Config().Set("COMMON","IP",CGlobal::IP);
Config().Set("COMMON","Port",CGlobal::Port);
Config().Set("COMMON","IP1",CGlobal::IP1);
Config().Set("COMMON","Port1",CGlobal::Port1);

    写应该是写进去了。因为把程序关闭后 用VI打开  ini文件 是可以看到已经修改了,如果不用VI打开重启后就又还原了。用VI打开后 再重启 就不会还原。现象就是像没保存一样。各位大神有没有遇见过的 指导下

有这种情况? 你程序写入完成后用ls -al查看下ini目录下的状况,有字节数重启后不会还原的。怎么搞得这么玄乎:)