簡體   English   中英

我的應用程序創建的Windows CE /嵌入式C ++非易失性文件在重新啟動時被刪除

[英]Windows CE/Embedded C++ non-volatile files created by my app being deleted on reboot

我正在使用C ++使用Windows Embedded Compact 7開發應用程序。 我最近遇到的問題是,我在應用程序中創建並放置在\\ Mounted Volume(非易失性分區)上的.ini設置文件和.txt日志文件在重新啟動時被刪除。

該應用程序正在打開.ini文件,編輯值,保存文件,並且下次啟動時,它將具有我更新的設置。 直到最近一次重大軟件更新后,我才開始出現問題。 但是在更新過程中並未涉及用於打開和關閉文件的特定功能。

盡管它似乎與我的應用程序以及打開/編輯/保存/關閉文件的方式有關,因為如果我使用寫字板打開.ini文件並手動編輯值然后保存,則設置將在重新啟動后保存。 我還具有所有功能的適當錯誤處理,並且沒有發生錯誤。

我已經在MSDN上閱讀過有關可能需要“刷新”打開的緩沖區的信息。 可能我需要這樣做嗎? 我真的希望有人處理過Windows Embedded / CE,並且可能遇到過類似的非易失性文件分區問題,其作用類似於易失性內存。

謝謝你的幫助! 這是我用來寫入日志文件的代碼,該代碼本質上與寫入.ini文件的代碼相同:

int writeLogFile(const char* szString)

{

FILE* pFile;

  if((pFile = fopen("\\Mounted Volume\\logFile.txt", "a+")) == NULL )

    debugMessage("Function: writeLogFile - Error! Could not open logFile.txt\n\r");

  else

    debugMessage("Function: writeLogFile - Notice. Opened logFile.txt\n\r");

  if(fprintf(pFile, "%s\r",szString) < 0)

    debugMessage("Function: writeLogFile - Error! There was a problem writing the alarm string to logFile.txt.\n\r");

  if(fclose(pFile))

    debugMessage("Function: writeLogFile - Error! Could not close logFile.txt\n\r");

  else

    debugMessage("Function: writeLogFile - Notice. Closed logFile.txt\n\r");

  return 1;

}

您可以在關閉文件之前嘗試打出電話會議嗎? 那應該強制實際寫入。 如果您沒有明確強制使用它,則文件系統可能會緩存寫操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM